日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 >

php 假多态,论PHP面向对象之-多态

發(fā)布時(shí)間:2025/3/12 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 php 假多态,论PHP面向对象之-多态 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

面向?qū)ο蟮娜筇卣?/p>

我們知道,面向?qū)ο笥腥筇卣?#xff0c;分別是:

封裝

繼承

多態(tài)

封裝與繼承

封裝

因?yàn)閷?duì)象都對(duì)自己負(fù)責(zé),所以,對(duì)象的很多東西都不需要或不可以暴露給其他對(duì)象。

比如:

小明不需要將所有的信息告訴別人;

手機(jī)不能不封裝而把CPU、內(nèi)存卡等等都暴露給用戶,這太危險(xiǎn)了(如下圖)。

封裝解決了數(shù)據(jù)的安全性,內(nèi)在也體現(xiàn)了‘每個(gè)對(duì)象都對(duì)自己負(fù)責(zé)’。

繼承

繼承,沒什么好說的,主要是實(shí)現(xiàn)了代碼的復(fù)用。

但說到這里,我們知道實(shí)現(xiàn)代碼的復(fù)用,有兩種方式,一種是組合、一種是繼承。

先給大家拋出一個(gè)問題:“什么時(shí)候該用組合?什么時(shí)候該用繼承呢?”

這個(gè)問題大家先想想,我們以后再討論。

重頭戲·多態(tài)

定義

對(duì)于多態(tài),我們先下一個(gè)定義:

同一個(gè)操作,作用于不同的對(duì)象,會(huì)產(chǎn)生不同的結(jié)果。

說白了,就是一個(gè)相同的指令發(fā)出,不同的對(duì)象會(huì)對(duì)這個(gè)指令有不同的反應(yīng),所以稱為多態(tài)。

舉個(gè)栗子

比如,我們有2個(gè)對(duì)象,分別是 word、excel。

我們使用相同的操作 Ctrl+N。

相同的操作:

對(duì)于word是新建word文檔;

對(duì)于excel是新建excel表格。

多態(tài)有什么好處

多態(tài)最大的好處可以用2個(gè)詞語來概括:“靈活”、“解耦”。

耦合度的意思是模塊與模塊之間、代碼與代碼之間的關(guān)聯(lián)度。

緊耦合也就是他們之間的關(guān)聯(lián)度大,這樣的代碼是很難維護(hù)的,很容易出bug的。出現(xiàn)一個(gè)bug,其他bug很可能像滾雪球一樣增長。

我們經(jīng)常說:“要面向接口編程,而不是面向?qū)崿F(xiàn)編程”。

多態(tài)性,也就要求我們面向接口編程。

不同的對(duì)象,相同的接口,但因?yàn)槎鄳B(tài),有了不同的實(shí)現(xiàn)。

這樣面向接口編程,就降低了耦合度,很靈活。

PHP中的多態(tài)

talk is cheap,show me your code

abstract class Animal{

//說話的方法

abstract public function say();

//吃的方法

public function eat(){

echo "eating food...";

}

}

//Dog子類繼承Animal抽象類

class Dog extends Animal {

public function say(){

echo "Dog say wangwang\n";

}

}

//Cat子類繼承Animal抽象類

class Cat extends Animal {

public function say(){

echo "Cat say miaomiao\n";

}

}

//test function

function work(Animal $obj){

if($obj instanceof Animal){

$obj->say();

}else{

echo "sorry.It's wrong";

}

}

work(new Cat()); //Cat say miaomiao

work(new Dog()); //Dog say wangwang

更多精彩,請關(guān)注公眾號(hào)“聊聊代碼”,讓我們一起聊聊“左手代碼右手詩”的事兒。

總結(jié)

以上是生活随笔為你收集整理的php 假多态,论PHP面向对象之-多态的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。