多型 讓學習的時候發瘋的現象

2021-06-28 11:31:25 字數 1659 閱讀 9004

引言:

本來想在繼承那一博文中把多型寫完的,但隨著繼承篇幅的增大,再加上多型這個讓人看上去很厭煩、很複雜的問題,會是整個篇幅變得可讀性極差,故靈氣此文。

多型:可以理解為事物存在的多種體現形態

1、多型的基本體現

父類的引用指向了自己的子類物件

父類的引用也可以接受自己的子類物件

2、多型的前提

必須是類與類之間有關係,要麼繼承,要麼實現

通常還有乙個前提,存在覆蓋

3、多型的好處

多型的出現大大提高了程式的擴充套件性

4、多型的弊端

提高了擴充套件性,但是只能使用父類的引用訪問父類的成員

5、多型的應用

6、多型的出現**中的特點(多型使用的注意物件)

空談多型,太過抽象,簡單說說執行結果,也不好理解,下面通過測試**中的例子說明問題。

/*

動物貓、狗

*/abstract class animal

class cat extends animal

public void catchmouse() }

class dog extends animal

public void kanjia() }

class duotaidemo

public static void function(animal a)

else if(a instanceof dog)

}}

在多型中成員函式特點:

在編譯時期引用型變數所屬的類中是否有呼叫的方法。如果有,編譯通過,如果沒有,編譯失敗

在執行時期,參閱物件所屬的類中是否有呼叫方法

簡單總結就是成員函式在多型呼叫時,編譯看左邊,執行看右邊

在多型中,成員變數的=特點:

無論是編譯和執行,都是參考左邊,(引用型變數所屬的類)

在多型中,靜態成員函式的特點:

無論編譯還是執行都參考左邊

abstract class student

}class bassstudent extends student

public void sleep() }

class advstudent extends student

}class dostudent

}class duotaidemo

}

需求:

電腦執行例項:

電腦執行基於主機板

inte***ce pci

class mainboard

public void usepci(pci p)//介面型引用指向子類建立的物件 }

}class netcard implements pci

public void close() }

/*class mainboard

public void usenetcard(netcard c) }

class netcard

public void close() }

*/class duotaidemo5

}

C 中的多型現象和多型的多種實現

一 virtual實現多型 shape類是通用的基類,draw是乙個虛方法,每個派生類都可以有自己的override版本,在執行時可以用shape類的變數動態的呼叫draw方法。public class shape public class rectangle shape public class ...

C 學習筆記之多型 多型的學習 多型學習

c 學習筆記之多型 多型的學習 多型學習 多型分為兩類 靜態多型 函式過載和運算子過載屬於靜態多型,復用函式名 動態多型 派生類和虛函式實現執行時多型 靜態多型和動態多型的區別 靜態多型的函式位址早繫結 編譯階段確定函式位址 動態多型的函式位址晚繫結 執行階段確定函式位址 動態多型滿足條件 動態多型...

讓Mac啟動的時候自動啟動mysql

用mac的launchctl來實現mysql自啟動。方法也簡單。1 編輯乙個mysql啟動檔案。在終端裡面輸入 plain view plain copy sudo vi library launchdaemons com.mysql.mysql.plist 2 輸入啟動檔案內容 html view...