我知道什么是多态性。但遇到了压倒一切的多态性。那是什么以及何时需要?
答案 0 :(得分:1)
让我向您解释多态性中的“ Overriding
”。
假设您有一个名为.. Bird
class Bird
{
public function fly()
{
echo "I can fly";
}
}
我提出了一个名为fly()
的方法,这是Bird的常见特征。 (让我们看看...... O.o)。我像每只鸟都能飞起来一样。好吧..
让我们开设另一个名为 Sparrow
的课程,扩展 Bird
课程
class Sparrow extends Bird
{
}
由于它扩展了 Bird
类,您可以像这样直接访问方法 fly()
..
$sparrow = new Sparrow();
$sparrow->fly();// "prints" I can fly
那么现在,让我们让另一个名为Duck的类扩展Bird类(假设......鸭子不会飞),所以我们应该访问 {{1它会打印“我可以飞”[我们不需要它,所以在这种情况下我们需要覆盖方法]
fly()
最终如果你这样做......你会得到这样的......
class Duck extends Bird
{
public function fly() //Method Overriding
{
echo "I cannot fly";
}
}