Java多型性 父類的引用指向子類的物件

2021-08-19 18:57:13 字數 930 閱讀 7246

/**

* @lin 2018.5.7

* animal a = new dog()

* 父類的引用指向子類的物件,此為多型性polymorphism。

* 此物件a能呼叫父類的方法和子類重寫的方法,父類被重寫的方法被覆蓋了。

* !! 不能呼叫子類新增的方法, 除非強制轉化為子類的物件 ((dog).a).play()

* animal a = new dog(); //a是父類animal的物件,所以預設可以呼叫父類的所以方法(重寫的會被子類覆蓋),它不能呼叫子類的新加方法,但是是指向子類,可以呼叫子類的重寫方法

* 構造方法從父類到子類。

*/class animal

public animal()

void go()

}class dog extends animal

@override

void eat()

void play()

}public class polymorphismtest

}

輸出:
animal 構造方法!!

dog 構造方法!!

animal go 父類沒被子類重寫的方法

dog eat 子類重寫父類的方法

------

父類的引用指向子類的物件

animal 構造方法!!

dog 構造方法!!

dog eat 子類重寫父類的方法

dog play -- 子類新增的方法

animal go 父類沒被子類重寫的方法

process finished with exit code 0

關於理解Java中的多型性,父類引用建立子類物件

好幾次都想起這個問題,每次想到都要腦子裡面就要思考一番 今天就做乙個小筆記 父類a,子類b a a new b 加入a是乙個介面或者抽象類,那麼不可以建立物件,用起引用去指向其他子類或實現類來建立物件是可以的 具體來說,假如乙個類需要實現各種水果,香蕉,蘋果等,有共同的方法eat 就必須給每乙個類寫...

父類引用指向子類物件(Java中的多型)

class father class son extends father void show class demo father obj new son 編譯看左邊,執行看右邊 1.當出現 父類引用指向子類物件 的情況時,如果子類中重寫了父類中的乙個方法,那麼父類引用在呼叫這個方法的時候,將會呼叫...

java的多型性

public class duotaitest class 子類 extends 父類 父類 物件名 new 子類 2.抽象類多型 還算常用 abstract class 父類 class 子類 extends 父類 父類 物件名 new 子類 3.介面多型 非常常用 inte ce 父類 clas...