java 内部类的疑惑

米斯特_ 2020-01-09 10:28:42

TestParent.class:
public class TestParent {

public static class ParentInner {
public static String pi1 = "pi1";
public static String pi2 = "pi2";
}

}

TestSub.class:
public class TestSub extends TestParent {

}

在eclipse中分别对两个类进行测试,发现eclipse在用子类引用父类的静态内部类的时候没提示,但这样用好像又没什么问题,有人知道是因为什么原因吗?
Main方法中测试:

...全文
84 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
zzzzzzzzzzzw___ 2020-01-10
  • 打赏
  • 举报
回复
package com.eleven.oop;

/**
 * 0.前面有关键字static,就叫静态方法,反之为非静态方法。
 * 1.静态方法不能直接向对象实施操作。
 * 2.静态方法是没有this参数的方法。(说明不是隐式参数)
 * 3.静态方法可以访问自身类中的静态域。
 * @author sywangu
 *
 */
public class StaticMethod {
	
	public static String getType() {
		return "人类";
	}
	
	public String getName() {
		return "张三";
	}
	
	public static void main(String[] args) {
		// 01静态方法可以直接使用类名调用
		String type = StaticMethod.getType();	
		System.out.println(type);	// 人类
		
		// 02非静态方法需要使用实例对象(StaticMethod)调用
		StaticMethod method = new StaticMethod();
		String name = method.getName();
		String type1 = method.getType();	// 当然getType方法也可以通过对象进行调用
		System.out.println("姓名:"+name+",类别:"+type1);	// 姓名:张三,类别:人类
	}

}
简单风 2020-01-10
  • 打赏
  • 举报
回复
确实是eclipse的问题,idea没问题。
javabro 2020-01-10
  • 打赏
  • 举报
回复
继承后ParentInner 已成为TestSub 类中属性,你只需要用TestParent. 属性即可,至于你上面说的为何没有提示,和eclispe本身有关,你将代码编译下后,你再试试
xiaowangbadan0_0 2020-01-09
  • 打赏
  • 举报
回复
引用 2 楼 米斯特_ 的回复:
[quote=引用 1 楼 xiaowangbadan0_0 的回复:] 楼主,你这个内部类没有声明为静态内部类吧
这不就是静态内部类吗,没错吧[/quote]看错了,没有收回
米斯特_ 2020-01-09
  • 打赏
  • 举报
回复
引用 1 楼 xiaowangbadan0_0 的回复:
楼主,你这个内部类没有声明为静态内部类吧
这不就是静态内部类吗,没错吧
xiaowangbadan0_0 2020-01-09
  • 打赏
  • 举报
回复
楼主,你这个内部类没有声明为静态内部类吧

81,094

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧