子類是否繼承父類的Private屬性和方法。

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.
官方文檔說明無法繼承

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章