Java多型實現的必要條件
多型分為編譯時多型和執行時多型。其中編輯時多型是靜態的,主要是指方法的過載,它是根據引數列表的不同來區分不同的函式,通過編輯之後會變成兩個不同的函式。而執行時多型是動態的,它是通過動態繫結來實現的,也就是我們所說的多型性。
在 java 物件導向中,Java 主要採用執行時多型,實現的必要條件為(AC)
A.要有繼承
B.要有過載
C.要有父類引用指向子類物件(向上轉型)
D.要有包
過載與重寫是 Java 多型性
的不同表現。
重寫是父類與子類之間多型性的表現,在執行時起作用(動態多型性,譬如實現動態繫結)
而過載是一個類中多型性的表現,在編譯時起作用(靜態多型性,譬如實現靜態繫結)。
多型的要點:
1.多型是方法的多型,不是屬性的多型(多型與屬性無關)
2.多型存在要有3個必要條件:繼承、方法重寫、父類引用指向子類物件。
3.父類引用指向子類物件後,用該父類引用呼叫子類重寫的方法,此時多型就出現了。
關於使用使用父類引用指向子類物件:https://zhangvalue.blog.csdn.net/article/details/106269444
public class TestAnimal {
public static void main(String[] args) {
Animal a = new Animal();
animalCry(a);
Dog d = new Dog();
animalCry(d);
Cat t = new Cat();
animalCry(t);
}
//多型的關鍵,通過父類的引用呼叫子類重寫的方法。
static void animalCry(Animal a) {
a.shout();
}
}
class Animal{
public void shout() {
System.out.println("animal 叫了一聲");
}
}
class Dog extends Animal{
public void shout() {
System.out.println("dog 汪汪汪!");
}
}
class Cat extends Animal{
public void shout() {
System.out.println("cat 喵喵喵!");
}
}
相關文章
- 什麼是Java多型?如何實現Java多型?Java多型
- java8 多條件的filter過濾JavaFilter
- 使用條件型別實現TypeScript中的函式過載型別TypeScript函式
- [譯] React 實現條件渲染的多種方式和效能考量React
- Autofac實現有條件的DI
- 成功部署SD-WAN的六個必要條件
- 程式碼優化-多型代替IF條件判斷優化多型
- jquery 多條件匹配jQuery
- 法幣將成為公共區塊鏈的必要條件區塊鏈
- 學習Python的幾個必要條件,你具備嗎?Python
- 遠端影片監控實現的條件
- TypeScript 條件型別精讀與實踐TypeScript型別
- 如何實現條件組合元件元件
- 一次簡單易懂的多型重構實踐,讓你理解條件邏輯多型
- SAP MM 自定義條件型別出現在採購資訊記錄的'條件'介面裡 ?型別
- day77:luffy:導航欄的實現&DjangoRestFramework JWT&多條件登入DjangoRESTFrameworkJWT
- Python 3.6:多型的實現Python多型
- Laravel 多條件去重Laravel
- Laravel 多條件查詢Laravel
- 【Django】組合條件的搜尋功能實現Django
- 實現ABAP條件斷點的三種方式斷點
- Java 設定Excel條件格式(高亮條件值、應用單元格值/公式/資料條等型別)JavaExcel公式型別
- java-queryWrapper條件JavaAPP
- Java ReEntrantLock 之 Condition條件(Java程式碼實戰-002)JavaReentrantLock
- typescript type 分配條件型別TypeScript型別
- Java 的多型Java多型
- Java 條件表示式的優化Java優化
- Java 介面實現多型 -- 膝上型電腦綜合例項Java多型
- 實現 ABAP 條件斷點的三種方式分享斷點
- SpringBoot Jpa多條件查詢Spring Boot
- gorm 使用map實現in 條件查詢用法GoORM
- Go 如何實現多型Go多型
- Java實現郵件推送功能Java
- Java抽象類、繼承及多型和介面卡的實現Java抽象繼承多型
- 條件隨機場實現命名實體識別條件隨機場
- 使用slice和條件變數實現一個簡單的多生產者多消費者佇列變數佇列
- 常用的php列表多條件篩選功能PHP
- IOS多型別Cell的tableView實現iOS多型型別View