多态性,它是什么,它不是什么

时间:2014-02-17 11:48:26

标签: oop polymorphism

我一直在使用不同的编程语言oop,我使用了不同的手册,我意识到几乎所有这些都解释了不同的多态性,虽然我对他们使用它的所有解释都很好,但是任何人都可以用实际例子解释这个概念在一个普通人的一般术语和概念中?

由于

回复赞赏

1 个答案:

答案 0 :(得分:2)

这是来自维基百科的直接复制粘贴,解释了xavi Lopez的例子:

“那里有很多。例如,这是一个经典的:动物可以makeSound()。动物叫做Dog的子类在实现makeSound()时会吠叫,而另一个叫做Cat的喵喵叫.makeSound( )方法对于动物的行为有所不同,具体取决于实例的实际子类。 - XaviLópez“

abstract class Animal {
    abstract String talk();
}

class Cat extends Animal {
    String talk() { return "Meow!"; }
}

class Dog extends Animal {
    String talk() { return "Woof!"; }
}

void lets_hear(Animal a) {
    println(a.talk());
}

void main() {
    lets_hear(new Cat());
    lets_hear(new Dog());
}

正如你所看到的,动物有不同的延伸。因此,根据动物类型,将打印不同的东西。

输出如下:

>>Meow!
>>Woof!