public class TestPublicPrivate {
int a=1;
private int e =7;
public void showE(){
System.out.println(e);
}
public int getA() {
return a;
}
public void setA(int a) {
this.a = a;
}
}
public class TestPrivate extends TestPublicPrivate {
public void setE(int x){
this.e=x;
}
public int getE(){
return e;
}
//e報錯
將鼠標放到e上會顯示
‘e’ has private access in ‘TestPublicPrivate’
public class TestPrivate extends TestPublicPrivate {
int a = 5;
public void setA(int x){
this.a=3;
}
public static void main(String[] args) {
TestPrivate a1 = new TestPrivate();
System.out.println(a1.getA());
a1.setA( 10 );
System.out.println(a1.getA());
}
}
這裏相當於破壞了setter方法
這裏兩個getA()==1;
還是隱形的調用了父類的getter的方法。
public class TestPrivate extends TestPublicPrivate {
int a = 5;
public void setA(int x){
this.a=3;
}
public int getA(){
return a;
}
public static void main(String[] args) {
TestPrivate a1 = new TestPrivate();
System.out.println(a1.getA());
a1.setA( 10 );
System.out.println(a1.getA());
}
這裏第一個 a1.get()==5;
第二個a1.get()==3;
http://docs.oracle.com/javase/tutorial/java/IandI/subclasses.html
A subclass does not inherit the private members of its parent class. However, if the superclass has public or protected methods for accessing its private fields, these can also be used by the subclass.
官方文檔說明無法繼承