黑馬程式設計師 多型

2021-06-20 15:04:55 字數 1695 閱讀 3113

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

人:男人、女人

動物:貓、狗

貓 c = new 貓();

動物 c = new 貓(); 

可理解為父類引用指向子類物件,是多型在物件上的體現性。而過載和覆蓋則是多型在函式上的體現性。

下面將從以下四個方面學習多型:

1、多型的表現形式

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

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

2、多型的前提

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

通常還有乙個前提就是存在覆蓋。

3、多型的好處

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

4、多型的弊端

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

5、多型如何應用

/*

動物貓,狗。

1、多型的表現形式

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

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

2、多型的前提

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

通常還有乙個前提就是存在覆蓋。

3、多型的好處

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

4、多型的弊端

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

5、多型如何應用

*/abstract class animal

class cat extends animal

public void catchmouse() }

class dog extends animal

public void kanjia() }

class pig extends animal

public void gongdi() }

//----------------------------------------

class duotaidemo

public static void function(animal a)

}

多型的應用:利用多型的原理,只需要完成基礎功能和呼叫方式,就可以搭建出乙個基本的框架,提高了程式的擴充套件性

/*

多型的應用

*/abstract class student }

class dosome}/*

利用多型只需要完成前面2個類就可以搭建乙個框架,提高了程式的擴充套件性

*/class basestudent extends student

public void sleep() }

class advstudent extends student

public void sleep() }

class duotaidemo2

}

多型中成員函式(非靜態)的特點:

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

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

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

多型中成員變數的特點:

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

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

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

黑馬程式設計師 多型

asp.net android ios rel noopener noreferrer target blank asp.net android ios開發 net rel noopener noreferrer target blank net培訓 期待與您交流!多型 理解為事物存在的多種體現形似...

黑馬程式設計師 多型

問題點 如何具體理解父類的引用?答 這個父類就是這個子類的另一種形態,可指向 多型的通俗理解 說白了,乙隻貓過來了,可以說 這貓好可愛 也可以說 這小動物很可愛 就是說貓具備了 貓 和 動物 這兩種形態,多型就這樣理解!動物 y new 貓 看到這樣的現象就可以看做是多型的出現了!多型的好處 父類引...

黑馬程式設計師 多型

多型定義 某一類事物的多種存在形態。例 動物中貓,狗。貓這個物件對應的型別是貓型別 貓 x new 貓 同時貓也是動物中的一種,也可以把貓稱為 動物。動物 y new 貓 動物是貓和狗具體事物中抽取出來的父型別。父型別引用指向了子類物件。體現 父類或者介面的引用指向或者接收自己的子類物件。作用 多型...