我知道什么是多态性。但遇到了压倒一切的多态性。那是什么,什么时候需要?
很高兴听到你知道什么是"多态性"。
让我来解释一下多态性中的">Overriding
"是什么。
假设您有一个名为 .. Bird
class Bird
{
public function fly()
{
echo "I can fly";
}
}
我提出了一种叫做fly()
的方法,这是鸟类的共同特征。(让我们看看..哎呀( .我已经像每只鸟都能飞一样。好吧
让我们有另一个名为 Sparrow
的类,它扩展了Bird
类
class Sparrow extends Bird
{
}
由于它扩展了Bird
类,因此您可以像这样直接访问方法fly()
。
$sparrow = new Sparrow();
$sparrow->fly();// "prints" I can fly
好吧,现在,让我们有另一个称为 Duck 的类,它扩展了 Bird 类(假设......鸭子不会飞(,所以我们应该访问它会打印"我可以飞">fly()
[我们不需要那个,所以在这种情况下我们需要覆盖该方法]
覆盖方法!
class Duck extends Bird
{
public function fly() //Method Overriding
{
echo "I cannot fly";
}
}
最终如果你这样做......你会变成这样。
$duck = new Duck();
$duck->fly(); // "prints" I cannot fly