《php物件導向》第23課 多型 覆蓋

2021-09-26 15:21:52 字數 601 閱讀 2409

多型不但表現在抽象方法上,普通的方法同樣可以實現多型。

下面我們看乙個例子。

<?php

//顧客類

class customer

}//vip類

class vip extends customer

}$c = new customer();

$c->buy();

echo '

';$v = new vip();

$v->buy();

認真閱讀上面的**就會發現,父類已經存在 buy() 方法,但在子類中 又重新寫了buy() 方法。這也是多型的表現。

有一點必須注意:

子類重寫(覆蓋)父類的方法時,訪問修飾符的許可權應該 符合這一原則:

子類方法的訪問許可權 高於 父類方法的訪問許可權。比如:

在上面的**中,父類中方法buy()的訪問許可權為public,那麼子類的buy()方法也必須是public

如果父類中方法buy()的訪問許可權為protected,但麼子類的buy()方法的訪問許可權可以是protected,也可以是public,但不能是private

php物件導向 之 多型 重寫覆蓋

class a class b extends a a new b a cry 這裡 子類class b 繼承了 父類class a 但是相對的 class b中 有乙個cry 方法 所有 這裡b例項化後 會優先呼叫 class b的cry 所以會輸出 你妹的 還有 如果class b要實現覆蓋 必...

php物件導向 之 多型 重寫覆蓋

class a class b extends a a new b a cry 這裡 子類class b 繼承了 父類class a 但是相對的 class b中 有乙個cry 方法 所有 這裡b例項化後 會優先呼叫 class b的cry 所以會輸出 你妹的 還有 如果class b要實現覆蓋 必...

PHP物件導向 多型

多型就是多種形態具體的可以分為過載和重寫 簡單來說就是子類重寫了父類的同名方法 重寫需要注意以下幾點 子類的方法名必須和父類方法名同名 子類的方法的引數個數必須和父類方法的引數個數一致 子類修飾的不能比父類更嚴格 public public表明該資料成員 成員函式是對所有使用者開放的,所有使用者都可...