public
class
father
private
void
run(
)public
father()
public
static
void
main
(string[
] args)
}class
sonextends
father
public
void
sleep()
public
son(
)public
intgetage()
public
void
setage
(int age)
}
最終輸出的結果
f.eat()輸出的是子類中重寫父類中的eat()方法
f.run()輸出的是父類中的run()方法(實際上是輸出的子類中的,只是因為子類中沒有重寫,所以看上去輸出的是父類中的,實際呼叫的是子類的)
f.age和f.weigth輸出的是子類的構造方法中重新賦值的
f.name輸出的是父類中的屬性
由此可以看出,父類引用指向子類物件,最終這個父類引用所擁有的變數是是子類中的(如果構造方法中沒有重新賦值那就和父類中的一樣,如果重新賦值了那就是子類中賦值以後的),方法也是子類中的(如果重寫了就是重寫之後的方法,如果沒有重寫的那就和父類中的一樣)
父類引用指向子類物件
要理解多型性,首先要知道什麼是 向上轉型 我定義了乙個子類cat,它繼承了animal類,那麼後者就是前者是父類。我可以通過 cat c new cat 例項化乙個cat的物件,這個不難理解。但當我這樣定義時 animal a new cat 這代表什麼意思呢?很簡單,它表示我定義了乙個animal...
父類引用指向子類物件
是多型的一種實現方式 這樣做使程式靈活性更好,若有多個子類,只需改變引用就能實現不同的功能,而不需要改變程式 父類 a 子類 a1,a2 a obj1 new a1 a obj2 new a2 如果a有乙個方法是show 子類實現了show 那麼obj1.show 就是第乙個子類的show obj2...
父類引用指向子類物件
package fuleiyinyongzhixiang public class animal public void sleep package fuleiyinyongzhixiang public class person extends animal public void play pa...