国产探花免费观看_亚洲丰满少妇自慰呻吟_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ā)表
主站蜘蛛池模板: 咸宁市| 新巴尔虎左旗| 龙胜| 民勤县| 许昌市| 闽侯县| 新泰市| 昭苏县| 卢湾区| 麻江县| 治县。| 改则县| 台东市| 抚远县| 昌都县| 岑溪市| 昌图县| 江源县| 科技| 河西区| 弥渡县| 阳江市| 天长市| 凤台县| 贺兰县| 邵阳县| 克什克腾旗| 团风县| 平昌县| 呼图壁县| 民县| 盐源县| 那坡县| 台南市| 承德市| 连山| 永定县| 洪洞县| 乌什县| 湘潭市| 城口县|