java學習之多型

2021-08-19 21:45:56 字數 1288 閱讀 8150

多型

一種事物的多種狀態

多型的規則(前提):

1.類和類之間必須要有關係(繼承關係)

2.必須要有方法的重寫(多型沒有意義)

3.(核心)父類的引用指向子類的物件(空間)

public class demo01多型 

}

多型如何使用成員變數

父類應用只能訪問子類空間中 屬於父類的那塊空間

編譯:編譯時要檢視父類中是否有這個屬性 沒有就編譯錯誤

執行:訪問時父類中這個成員變數

結論:當使用多型形式建立物件的時候

訪問成員變數時 編譯和執行 都是看父類中的屬性

多型呼叫成員方法

編譯:編譯時需要看父類中 是否有該方法 沒有就報錯

有 就編譯通過

執行:執行時呼叫是子類重寫父類的方法

結論:編譯看父類 執行看子類

多型的好處:

1.減少**量 提高工作效率 復用性強

相當於提高了**的可維護性(指的是繼承)

2.(核心)提高方法的擴充套件性

多型的弊端:

當使用多型的方式建立物件時

無法直接呼叫子類中特有的方法

多型呼叫子類的特有方法注意:

必須要先有向上轉型才能進行向下轉型

public class demo03

}class person

}class pianzi extends person

//特有方法

public void hit()

}

多型的核心特點:提公升方法的擴充套件性

public class demo04 

//使用多型的方法

public static void fun(wuqi wuqi) else if(wuqi instanceof dao)

}}class wuqi

}class jian extends wuqi

//特有的方法

public void lianjian()

}class dao extends wuqi

public static void liandao()

}

java學習之多型

向上轉型是不需要進行強制型別轉換的,但是向上轉型會丟失精度。與向上轉型對應的乙個概念就是 向下轉型 所謂向下轉型,也就是說父類的物件可以轉換為子類物件,但是需要注意的是,這時則必須要進行強制的型別轉換。類似於人壓彈簧 一 向上轉型可以自動完成 二 向下轉型必須進行強制型別轉換。可以用instance...

Java學習之多型

原帖 多型 晚繫結。不要把函式過載理解為多型。因為多型是一種執行期的行為,不是編譯期的行為。多型 父型別的引用可以指向子型別的物件。比如 parent p new child 當使用多型方式呼叫方法時,首先檢查父類中是否有該方法,如果沒有,則編譯錯誤 如果有,再去呼叫子類的該同名方法。注意此處,靜態...

Java學習之多型

多型 晚繫結。不要把函式過載理解為多型。因為多型是一種執行期的行為,不是編譯期的行為。多型 父型別的引用可以指向子型別的物件。比如 parent p new child 當使用多型方式呼叫方法時,首先檢查父類中是否有該方法,如果沒有,則編譯錯誤 如果有,再去呼叫子類的該同名方法。注意此處,靜態sta...