什么是OOP中的重写多态性。请举例说明php

时间:2013-12-02 09:18:25

标签: php object-oriented-analysis

我知道什么是多态性。但遇到了压倒一切的多态性。那是什么以及何时需要?

1 个答案:

答案 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";
    }
}

这有点是“Method Overriding”的基本解释。