Introductionphp
和C/C++,Java,Python等語言同樣,PHP也支持多態。多態更可能是是一種面向對象程序設計的概念,讓同一類對象執行同一個接口,但卻實現不一樣的邏輯功能。編程
仍是用動物、鯨魚和鯉魚來舉例:設計
interfaceIEat{對象
functioneatFish();接口
functioneatMoss();get
}it
classWhaleimplementsIEat{io
publicfunctioneatFish(){function
echo"Whale eats fish.\n";
}
publicfunctioneatMoss(){
echo"Whale doesn't eat fish\n";
}
}
classCarpimplementsIEat{
publicfunctioneatFish(){
echo"Carp doesn't eat moss.\n";
}
publicfunctioneatMoss(){
echo"Carp eats moss.\n";
}
}
$whale=newWhale();
$whale->eatFish();
$whale->eatMoss();
$carp=newCarp();
$carp->eatFish();
$carp->eatMoss();
?>
運行一下:
$ phpInheritance.php
Whaleeats fish.
Whaledoesn't eat fish.
Carp eats moss.
Carp doesn't eat moss.
注意PHP的函數定義不包含返回值,所以徹底能夠給不一樣的接口實現返回不一樣類型的數據。這一點和C/C++,Java等語言是不一樣的。此外,返回不一樣類型的數據,甚至不返回結果,對程序設計來講,會額外增長維護成本,已經和使用接口的初衷不一樣了(接口爲了封裝實現,而不一樣的返回值事實上是須要調用者去理解實現的)。
合理利用多態對接口進行不一樣的實現,簡化你的編程模型,讓代碼易於維護。
若是你以爲眼前須要更好的提升你能夠來千鋒學PHP,國內排名第一的PHP機構。