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

2021-08-18 10:43:32 字數 564 閱讀 9412

好幾次都想起這個問題,每次想到都要腦子裡面就要思考一番

今天就做乙個小筆記

父類a,子類b

a a=new b();

①加入a是乙個介面或者抽象類,那麼不可以建立物件,用起引用去指向其他子類或實現類來建立物件是可以的

具體來說,假如乙個類需要實現各種水果,香蕉,蘋果等,有共同的方法eat()

就必須給每乙個類寫乙個方法

public void eat(banana banana)

.....
但是把方法寫成:
public void eat(fruit fruit)
只要是繼承了fruit 或者實現了fruit介面都可以作為這個eat方法的引數,大大簡化了程式設計

②a a = new b() ;

上面這位朋友的例子來說,

a是父類的引用,指向了乙個子類物件

好處是:

以後如果一旦發現該b物件無法適應   當前環境,可以轉換成父類中的其它物件。

即:a a=new c()這裡改了之後,其他的**不需做更改了

JAVA中的多型性

物件導向的特徵是封裝 繼承 多型,其中多型是指不同類的物件對同一訊息做出相應,即同一訊息可以根據傳送物件的不同而採用多種不同的行為方式。類的多型性表現在過載 重寫 物件的多型性上,過載與重寫在之前的博文中做過講解,這裡不再贅述,本文主要講解物件的多型性。物件的多型性指子類與父類的相互裝換,包含如下兩...

深入理解Java多型性

列印 分析 當超類物件引用變數引用子類物件時,被引用物件的型別而不是引用變數的型別決定了呼叫誰的成員方法,但是這個被呼叫的方法必須是在超類中定義過的,也就是說被子類覆蓋的方法.但是如果強制把超類轉換成子類的話,就可以呼叫子類中新新增而超類沒有的方法了.這裡涉及方法呼叫的優先順序問題,優先順序由高到低...

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

lin 2018.5.7 animal a new dog 父類的引用指向子類的物件,此為多型性polymorphism。此物件a能呼叫父類的方法和子類重寫的方法,父類被重寫的方法被覆蓋了。不能呼叫子類新增的方法,除非強制轉化為子類的物件 dog a play animal a new dog a是...