国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發(fā)設計 > 正文

JAVA--繼承

2019-11-14 14:57:01
字體:
供稿:網(wǎng)友

  項目開發(fā)遇到一個問題,稀里糊涂給實現(xiàn)了,現(xiàn)在重點討論一下這是個什么情況,大神們?nèi)绻吹较Mo點指點。

  問題:子類與父類具有相同的屬性和方法,將子類實例化為父類,調(diào)用對應屬性的get、set方法,打印出的信息顯示了,子類的屬性值,請問這是什么原因?

代碼如下--父類:

public class Freath {        PRivate int a = 1;    public int getA() {        return a;    }    public void setA(int a) {        this.a = a;    }}

子類A:

public class A extends Freath{    private int a = 2;    public int getA() {        return a;    }    public void setA(int a) {        this.a = a;    }    }

子類B:

public class B extends Freath{    private int a = 3;    public int getA() {        return a;    }    public void setA(int a) {        this.a = a;    }}

測試類:

public class Test {    public static void main(String[] args) {        Freath fa = new A();        Freath fb = new B();        System.out.println(fa.getA()+"");        System.out.println(((A) fa).getA()+"");        System.out.println(fb.getA()+"");        System.out.println(((B) fb).getA()+"");    }    }

輸出結(jié)果:

  

  首先這樣的結(jié)果,確實是我想要的,不過對于里面的具有邏輯,甚是不解,還望能得到指點。

  對于上面的情況我又進行了一下修改,打印出的結(jié)果就完全變了:

父類:

public class Freath {        private int a = 1;    public int getA() {        return a;    }    public void setA(int a) {        this.a = a;    }}

子類A:

public class A extends Freath{    private int a = 2;//    public int getA() {//        return a;//    }////    public void setA(int a) {//        this.a = a;//    }}

子類B:

public class B extends Freath{    private int a = 3;//    public int getA() {//        return a;//    }////    public void setA(int a) {//        this.a = a;//    }}

測試類:

public class Test {    public static void main(String[] args) {        Freath fa = new A();        Freath fb = new B();        System.out.println(fa.getA()+"");        System.out.println(((A) fa).getA()+"");        System.out.println(fb.getA()+"");        System.out.println(((B) fb).getA()+"");    }    }

結(jié)果:

  

  對于這兩種情況的產(chǎn)生,我的理解是,第一種情況屬于:父類的屬性是私有的,子類無法繼承,父類的屬性方法是公開的,子類可以進行繼承重寫,之所以出現(xiàn)上面的情況,就是父類進行相當于一個提供調(diào)用子類方法的入口,子類重寫這些方法后,當調(diào)用時,便打印出了子類的屬性值。第二種情況則是由于父類的屬性是私有的,子類無法進行繼承,子類繼承了父類的方法,但沒有進行重寫,所以調(diào)用時,便將父類的信息打印出來了。


發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 丰城市| 丁青县| 运城市| 永和县| 绥德县| 郁南县| 平凉市| 全椒县| 伊宁市| 健康| 丰台区| 张家界市| 平谷区| 册亨县| 华阴市| 红原县| 罗甸县| 洛浦县| 抚顺县| 沈阳市| 广东省| 香河县| 阳高县| 平顶山市| 朝阳市| 上虞市| 渭源县| 六安市| 蓬安县| 四会市| 江津市| 台北县| 麻阳| 汾阳市| 景宁| 内乡县| 尼木县| 武汉市| 庐江县| 东海县| 湖州市|