什么是OOP中最重要的多态性。请用php举例
我知道什么是多态性。但是出现了压倒一切的多态性。那是什么?什么时候需要 很高兴听到你知道什么是“多态性”。 让我解释一下多态性中什么是“重写” 假设你有一门课叫什么是OOP中最重要的多态性。请用php举例,php,object-oriented-analysis,Php,Object Oriented Analysis,我知道什么是多态性。但是出现了压倒一切的多态性。那是什么?什么时候需要 很高兴听到你知道什么是“多态性”。 让我解释一下多态性中什么是“重写” 假设你有一门课叫Bird class Bird { public function fly() { echo "I can fly"; } } 我提出了一种叫做fly()的方法,这是鸟类的一种常见特征。(让我们看看……好的)。我像每一只鸟都能飞一样坚持。好吧,好吧 让我们有另一个名为“麻雀”的类,它扩展了“鸟”类
Bird
class Bird
{
public function fly()
{
echo "I can fly";
}
}
我提出了一种叫做fly()
的方法,这是鸟类的一种常见特征。(让我们看看……好的)。我像每一只鸟都能飞一样坚持。好吧,好吧
让我们有另一个名为“麻雀”的类,它扩展了“鸟”类
class Sparrow extends Bird
{
}
由于它扩展了Bird
类,您可以像这样直接访问方法fly()
$sparrow = new Sparrow();
$sparrow->fly();// "prints" I can fly
$duck = new Duck();
$duck->fly(); // "prints" I cannot fly
现在,让我们使用另一个名为Duck的类来扩展Bird类(假设鸭子不会飞),因此我们应该访问fly()
它会打印“我会飞”[我们不需要它,所以在这种情况下我们需要重写该方法]
重写方法!
最终,如果你这样做。。你会变成这样的
$sparrow = new Sparrow();
$sparrow->fly();// "prints" I can fly
$duck = new Duck();
$duck->fly(); // "prints" I cannot fly
这在某种程度上是对“方法重写”的基本解释。也许你能举出一些你遇到这个词的背景吗?我会读的。也许给我们举一个你想做的事情的例子可以帮助我们澄清一些事情……1)鸭子能飞得很好。2) 不能飞的鸟不应该延伸能飞的鸟。类层次结构应该是
Bird
,FlyingBird extensed Bird
,Sparrow extensed FlyingBird
,Kiwi extensed Bird
。或者使用接口