物件導向三大特性之多型基礎

2021-08-03 02:56:11 字數 1157 閱讀 9599

多型是除封裝和繼承之外的另乙個面象物件的三大特性之一。

[php]view plain

copy

<?php  

inte***ce

shape  

//定義了乙個矩形子類實現了形狀介面中的周長和面積

class

rect 

implements

shape  

function

area()   

function

perimeter()       

}     

//定義了乙個圓形子類實現了形狀介面中的周長和面積

class

circular 

implements

shape  

function

area()       

function

perimeter()   

}      

//把子類矩形物件賦給形狀的乙個引用

$shape

= new

rect(5, 10);  

echo

$shape

->area() . ""

;  echo

$shape

->perimeter() . ""

;  //把子類圓形物件賦給形狀的乙個引用

$shape

= new

circular(10);  

echo

$shape

->area() . ""

;  echo

$shape

->perimeter() . ""

;*/  

輸出結果:

[php]view plain

copy

矩形的面積是:50  

矩形的周長是:30  

圓形的面積是:314  

圓形的周長是:62.8  

通過上例我們看到,把矩形物件和圓形物件分別賦給了變數$shape, 呼叫$shape引用中的面積和周長的方法,出現了不同的結果,這就是一種多型的 應用,其實在我們php這種弱類形的物件導向的語言裡面,多型的特性並不是特別的明顯,其實就是物件型別變數的變相引用。

物件導向三大特性之多型

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

物件導向三大特性之多型

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

物件導向三大特性之多型

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