The method is getA()defined only in the superclass and can only access members of the superclass. He cannot know about the asubclass, therefore the asubclass cannot put out his.
a , . , a .
: : , , ?
OP:
class A {
public int a = 10;
public int getA() {
return a;
}
public void setA(int a) {
this.a = a;
}
}
class B extends A {
public int a = 20;
}
class C extends B {
public int getA() {
return a;
}
}
public class Demo {
public static void main(String args[]) {
B a = new B();
System.out.println(a.getA());
C c = new C();
System.out.println(c.getA());
}
}
10 20, , C getA() B a.
, , B a .
class B extends A {
private int a = 20;
}
, :
Demo.java:18: error: a has private access in B
, -, , a, , , a. a ( public protected), . a , .