PHP8的繼承和多態(tài)-PHP8知識詳解
導讀:我們在前面的時候講過《面向對象編程的特點》時,面向對象編程具有3大特點:封裝性、繼承性和多態(tài)性。 集成和多態(tài)的根本作用就是完成代碼的重用。下面就來講解PHP8的繼承和多態(tài)。
我們在前面的時候講過《面向對象編程的特點》時,面向對象編程具有3大特點:封裝性、繼承性和多態(tài)性。
繼承和多態(tài)的根本作用就是完成代碼的重用。下面就來講解PHP8的繼承和多態(tài)。
1繼承
子類可以繼承父類的所有成員變量和成員方法,包括構造方法。當子類被創(chuàng)建時, PHP 會先在子類中查找構造方法。如果子類中有自己的構造方法,則PHP會先調用子類中的方法。如果子類中沒有自己的構造方法,則 PHP會調用父類中的構造方法,這就是繼承。
繼承(Inheritance)是OOP 中最為重要的特性與概念。父類擁有其子類的公共屬性和方法。子類除了擁有父類具有的公共屬性和方法外,還擁有自己獨有的屬性和方法。
PHP 使用關鍵字 extends 來確認子類和父類,實現子類對父類的繼承。具體的語法格式如下:
class 子類名稱 extends 父類名稱{
//子類成員變量列表
function 成員方法(){ //子類成員方法
//方法內容
}
}
繼承類的變量,參考案例:
<?php
class Language {
var $f1 = "html"; //定義變量
var $f2 = "javascript";
};
class MyLanguage extends Language { //類之間繼承
var $f3 = "php"; //定義子類的變量
var $f4 = "mysql";
};
$myLanguage = new MyLanguage (); //實例化對象
echo "目前熱門的web開發(fā)語言有:".$myLanguage ->f1.",".$myLanguage ->f2.",".$myLanguage ->f3." ,".$myLanguage->f4;
?>
以上代碼在php8中的運行結果是:
目前熱門的web開發(fā)語言有:html,javascript,php ,mysql
從結果中可以看出,本案例創(chuàng)建了一個Language父類,子類通過關鍵字extends繼承了Language父類中的成員屬性,最后對子類進行實例化操作。
2、多態(tài)
多態(tài)性是指同一操作作用于不同類的實例,將產生不同的執(zhí)行結果,即不同類的對象收到相同的消息時,得到不同的結果。
多態(tài)就像有一個成員方法從廣州去北京,這時候有人做開汽車去,有人做高鐵去,也有人做飛機去。雖然是同一個成員方法,但是卻產生了不同的形態(tài),這就是多態(tài)。
今天我就以一個今日特價水果的案例來實現類的多態(tài):
<?php
abstract class Fruit { //定義抽象類Fruit
abstract function display_Fruit(); //定義抽象方法 display_Fruit
}
class Fruit1 extends Fruit{ //繼承父類Fruit
public function display_Fruit (){ //重寫抽象方法 display_Cars
echo "今日特價水果是蘋果!" ; //輸出信息
}
}
class Fruit2 extends Fruit{ //繼承父類Cars
public function display_Fruit(){ // display_Cars
echo "今日特價水果是葡萄!" ;
}
}
function change($obj){ //自定義方法根據對象調用不同的方法
if($obj instanceof Fruit){
$obj->display_Fruit ();
}else{
echo "傳入的參數不是一個對象"; //輸出信息
}
}
echo "實例化Fruit1:";
change(new Fruit1()); //實例化Fruit1
echo "<br>";
echo "實例化Fruit2:";
change(new Fruit2()); //實例化Fruit2
?>
以上代碼在PHP8中的運行結果如下:
實例化Fruit1:今日特價水果是蘋果!
實例化Fruit2:今日特價水果是葡萄!
好了,到此為止,PHP8的繼承和多態(tài)就講解完畢了。
本文地址:http://003188.cn/php8dejichengheduotai.html
碼字不易,打個賞唄
楊澤業(yè)感謝你的支持!
站長在線站長一對一網絡指導服務,一元一分鐘,50元一個小時
阿里云虛擬主機1G空間,120元一年
香港、美國虛擬主機100元一年,1000元永久
騰訊云雙十一0.4折起,2核8G5M三年僅700元,2核4G8M三年僅198元
阿里云虛擬主機1G空間,120元一年
香港、美國虛擬主機100元一年,1000元永久
騰訊云雙十一0.4折起,2核8G5M三年僅700元,2核4G8M三年僅198元
猜你喜歡