国产成人精品亚洲777人妖,欧美日韩精品一区视频,最新亚洲国产,国产乱码精品一区二区亚洲

您的位置:首頁技術(shù)文章
文章詳情頁

java - 當(dāng)在子類中聲明一個(gè)父類中存在的變量后,自動(dòng)調(diào)用的父類構(gòu)造函數(shù)不起作用。

瀏覽:157日期:2024-02-14 11:07:22

問題描述

問題解答

回答1:

執(zhí)行順序是這樣的:

1. super();1.1. super.i = 7;1.2. this.setI(20) => this.i = 60;1.3. System.out.println('i from a is ' + super.i) => 7;2. this();2.1. this.i = 10;2.2. System.out.println('i from b is ' + this.i) => 10;

A.i 和 B.i 都是package-private的, B.i 沒有Override A.i, 這兩者是獨(dú)立的;

A.setI 和 B.setI 都是public, B.setI Override A.setI, A在構(gòu)造時(shí)調(diào)用的是B.setI;

B在構(gòu)造函數(shù)之外的成員初始化是在super()之后執(zhí)行的, B.i先是在super里被B.setI設(shè)為60, 再被B的成員初始化設(shè)為10;

刪除B中的int i = 10;之后, 如果A和B處于同一個(gè)package, B.setI訪問的就是A.i, super()時(shí)A.i被設(shè)為60之后就不會(huì)有變更, 兩次打印都是60

回答2:

在子類中再聲明一個(gè)父類中已有的成員,不會(huì)報(bào)錯(cuò)嗎?至少也應(yīng)該是警告吧。

我只能說,題目出得太缺德了。實(shí)際開發(fā)中不可能這么寫,自己給自己挖坑啊。

回答3:

7.101.到A的構(gòu)造方法,執(zhí)行完Object的空參構(gòu)造。2.int I=73.setI(20)調(diào)用的是子類的setI() 此時(shí)子類的I為60,父類的仍為7.4.打印this.i 此時(shí)在父類中.是 7;(注意點(diǎn):變量看實(shí)際調(diào)用者, this是當(dāng)前父類;方法因?yàn)楸恢貙懀{(diào)用子類)5.int I=10 覆蓋了原先的60.6,打印this.i 此時(shí)為10.

60.60注意:你刪除了子類的I,默認(rèn)調(diào)用的就是父類的I3.調(diào)用子類setI,賦值給了父類,此時(shí)父類改變?yōu)?0.5.此時(shí)沒有覆蓋,this.i 默認(rèn)調(diào)用父類繼承下來的I. 為60.

論Degbug的重要性...

標(biāo)簽: java
主站蜘蛛池模板: 正镶白旗| 石泉县| 孟津县| 肇源县| 友谊县| 通许县| 观塘区| 铅山县| 独山县| 潜山县| 长兴县| 应用必备| 启东市| 慈利县| 彝良县| 五寨县| 隆回县| 满洲里市| 大渡口区| 宿州市| 岑巩县| 朝阳县| 二手房| 汕头市| 富川| 昌平区| 聊城市| 扶风县| 墨江| 北京市| 安多县| 上思县| 高要市| 德保县| 且末县| 洛阳市| 攀枝花市| 稻城县| 武川县| 三门峡市| 化德县|