public class A {
protected int b = 16;
}
public class B extends A{
private int b=20;
public static void main(String[] args)
{
B b = new B();
System.out.println(b.b);
}
}
输出为20.如何引用B类对象的b不能正确访问私有成员?
答案 0 :(得分:2)
static
方法可以访问包含类的所有private
个成员。
由于您的main
属于班级B
,因此可以看到所有成员。
答案 1 :(得分:2)
您在B级获得b的值.B可以访问自己的私人成员。
答案 2 :(得分:1)
您仍然可以直接从B
课程内部访问它,即使它是private
。由于main
方法位于那里,因此可以访问私有变量。
b
类中的变量A
被b
类中的变量B
隐藏,除非您将其声明为:< / p>
A ab = new B();
System.out.println(ab.b);
这将打印16
。
答案 3 :(得分:0)
您正在访问上面当前班级b
中的班级成员变量B
。无论如何宣布,B都可以访问所有成员的障碍。
由于A.b
受保护但可供调用类使用,因此您可以通过向上转发来访问它:
System.out.println(((A)b).b);
答案 4 :(得分:0)
由于main()
是B
类的成员,因此可以访问private
个成员。