關(guān)于super的問題
//Animal類:
public?class?Animal?{ public?int?age?=?110; public?String?name; public?void?eat(){ System.out.println("動物具有吃東西的能力"); } public?Animal(){ System.out.println("Animal類執(zhí)行"); age?=?210; } }
//dog類繼承Animal類: public?class?Dog?extends?Animal?{ public?Dog(){ System.out.println("Dog類執(zhí)行了"); System.out.println("這里是dog的構(gòu)造函數(shù),現(xiàn)在Age?of?the?Animal?is:"?+?super.age); } public?void?eat(){ System.out.println("狗是可以吃東西的"); System.out.println("這里是dog類內(nèi)的eat函數(shù),現(xiàn)在Age?of?the?Animal?is:"?+?super.age); } } //初始化類: public?class?Initial?{ public?static?void?main(String[]?args)?{ //?TODO?Auto-generated?method?stub Animal?animal?=?new?Animal(); System.out.println(animal.age); Dog?dog?=?new?Dog(); dog.age=110; dog.name="Bobby"; dog.eat(); } }
顯示結(jié)果:
Animal類執(zhí)行
210
Animal類執(zhí)行
Dog類執(zhí)行了
這里是dog的構(gòu)造函數(shù),現(xiàn)在Age of the Animal is:210
狗是可以吃東西的
這里是dog類內(nèi)的eat函數(shù),現(xiàn)在Age of the Animal is:110
為什么在eat函數(shù)里print年齡的時候,就是顯示主函數(shù)給狗的年齡了?難道不應(yīng)該是父類animal的年齡嗎?求解。
2016-07-19
dog類繼承了animal類,dog類沒有定義自己的age, 這種情況下Dog類和Animal類的age是同一個。