[問題] 請問建構時期呼叫方法的問題
http://pastie.org/2616984
程式碼如上
請問一下
當我執行new B()的時候當我執行AA父類別建構子中fun1()方法的時候
本來我預期是會出現 A::fun1()==> a=10000
結果出現的是
B::fun1()==> a=0
B::fun1()==> b=0
B::fun1()==> c=20
請問以結果來說的話
我可以說是因為多型的關係
所以我雖然是在執行父類別的建構子
但其呼叫的同名方法還是會呼叫到子類別的fun1()方法
請問這樣敘述正確嗎?
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 124.8.138.239
推
09/30 21:49, , 1F
09/30 21:49, 1F
→
09/30 21:51, , 2F
09/30 21:51, 2F
→
09/30 21:52, , 3F
09/30 21:52, 3F
推
09/30 21:55, , 4F
09/30 21:55, 4F
應該是跟多型無關
剛試著把obj=new BB();
改成BB XX=new BB();
結果還是一樣
應該說即便是在父類別的的建構子呼叫方法
子父類別有同名方法的話
會自動override父類別的方法
這樣敘述不知道正不正確?
※ 編輯: aoksc 來自: 124.8.138.239 (09/30 22:08)
推
09/30 22:34, , 5F
09/30 22:34, 5F
→
09/30 22:36, , 6F
09/30 22:36, 6F
推
09/30 22:52, , 7F
09/30 22:52, 7F
→
09/30 22:55, , 8F
09/30 22:55, 8F
→
09/30 22:57, , 9F
09/30 22:57, 9F
→
09/30 23:02, , 10F
09/30 23:02, 10F
推
09/30 23:30, , 11F
09/30 23:30, 11F
推
10/01 01:38, , 12F
10/01 01:38, 12F
→
10/01 01:39, , 13F
10/01 01:39, 13F