黑馬程式設計師 多型總結

2021-06-19 23:43:42 字數 2250 閱讀 7562

---------------------- asp.net+android+ios開發、.net培訓、期待與您交流! ----------------------

一、認識多型

1,多型體現:父類引用指向自己子類物件

class fu

}class zi extends fu

}

fu f1 = new fu();

zi z = new zi();

fu f3 = new zi();

分析上例中fu f1 = new fu()和zi z = new zi();不是多型只有fu f3 = new zi()是多型可以看出是fu類的引用f3指向了自己子類物件new zi()。

2,多型前提

2.1,類與類之間存在特定關係,繼承或實現(介面)

2.2,存在覆蓋,

3,好處

提高程式的擴充套件性,父類提供功能子類去實現具體功能

class animal

}class dog extends animal

}class cat extends animal

}class feeder

}

feeder f = new feeder();

f.feed(new dog());//列印dog eat bone

f.feed(new cat());//列印cat eat fish

上面例子中feeder類的feed方法的引數為animal型別,那麼當有其它類繼承了animal後,就可以將其傳進feed方法,當執行eat方法時呼叫子類的相應的eat方法,完成子類的eat的動作,這樣不必針對每個子類進行編譯相應的**,而用同乙個**都能完成,因此多型提高了程式的可擴充套件性

4,多型的侷限性

只能使用父類的引用訪問父類中的成員,如要訪問子類的特有方法需要將父類的引用強制轉換成子類型別,但要注意不能將父類 物件轉成子類型別,多型中自始自終都是子類物件在變化。

class animal

}class cat extends animal

void catchmouse()

}

class feeder

}

feeder類中的feed方法a.eat()是正確的,如果執行a.catchmouse()就會報錯因為catchmouse()是子類cat特有方法,而父類animal並沒有這個方法,因此程式會報錯。如果要訪問必須將animal轉換成子類物件即

cat c = (cat)a;

c.catchmouse();

二、多型**中的特點

1,多型中成員函式的特點

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

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

class animal

}class cat extends animal

void catchmouse()

}

animal a = new cat();

a.eat();//編譯通過,執行時參閱cat的eat()方法列印cat eat fish

a.catchmouse();//編譯失敗

2,多型中成員變數

無論在編譯還是執行時期都參考引用變數所屬的類

class fu

}class zi extends fu

}

fu f = new zi();

system.out.println(f.i);//編譯時期看fu類,編譯通過,執行時仍然看父類因此列印1

3,多型中靜態成員函式

無論編譯還是執行都參考引用變數所屬的類

class fu

}class zi extends fu

}

fu f = new zi();

f.show();//列印fu.show

---------------------- asp.net+android+ios開發、.net培訓、期待與您交流! ----------------------

詳細請檢視:

黑馬程式設計師 多型

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

黑馬程式設計師 多型

多型 可理解為事物存在的多種體現形態。人 男人 女人 動物 貓 狗 貓 c new 貓 動物 c new 貓 可理解為父類引用指向子類物件,是多型在物件上的體現性。而過載和覆蓋則是多型在函式上的體現性。下面將從以下四個方面學習多型 1 多型的表現形式 父類的引用指向了自己的子類物件。父類的引用也可以...

黑馬程式設計師 多型

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