物件導向三大特性之多型(三)

2021-07-26 16:43:11 字數 849 閱讀 7735

多型,從字面理解就是多種形態。

在生活中的例子也有很多例子,比如:windows系統有administrator使用者,其下有普通使用者、guest使用者等不同形態;世界滿地是person,其下有開掛民族、戰鬥民族等不同形態;同樣按下f1鍵,在word、excel、powerpoint 中彈出的幫助文件都不一樣。同一事件發生在不同事物上能產生不同的效果。

多型存在的三個必要條件:

1、要有繼承

2、要重寫父類的方法

3、父類引用指向子類物件

public inte***ce parent//父類介面

public class child_a implements parent}

public class child_b implements parent

}

//當然還可以有其他的實現

然後,我們就可以看到多型所展示的特性了:

//父類引用指向子類物件

parent pa = new child_a();

pa.******call()則顯然是呼叫child_a的方法;

parent pa = new child_b();

pa.******call()則是在呼叫child_b的方法。

所以,我們對於抽象的父類或者介面給出了我們的具體實現後,pa 可以完全不用管實現的細節,只訪問我們定義的方法,就可以了。事實上,這就是多型所起的作用,可以實現控制反轉。這在大量的j2ee輕量級框架中被用到,比如spring的依賴注入機制。

物件導向三大特性之多型

多型 同乙個物件在不同時刻表現出來的不同狀態。多型的前提和體現 存在繼承關係或者實現關係 這裡的實現是指介面間的關係 有方法的重寫。有父類引用指向子類物件。多型中成員的訪問特點 訪問成員變數時 首先定義乙個動物類 其次定義乙個子類來繼承它 定義乙個測試類 由此可見當我們用多型的形式去訪問類中的成員變...

物件導向三大特性之多型

本想自己寫 但是發現乙個更好的。抽象類的多型 場景描述 一位剛畢業的老師,目前只能通過騎車上班,多年後終於坐騎公升級了,有了自己的小汽車,於是騎著小汽車上班。騎自行車上班 1.自行車類 public class bike public void stop 2.教師類 public class tea...

物件導向三大特性之多型

多型更像是一種思想,而並非具體的技術。因為繼承的存在,從而引發了多型,python本就是多型的形式,就像現實世界一樣。都是起源於某一單細胞生物但是經過不斷的演化差異化越來越大。多型的定義即是 在不同的類中例項化得到的物件下的相同的方法,實現的過程不一樣。這個就很有意思了.多型的前提是必須有繼承的支援...