2014-02-17 18 views
-5

我一直在使用不同的編程語言,我已經使用不同的手冊,我意識到,幾乎所有人都解釋多態性不同,雖然我很好,所有的解釋使用它的條款,但任何人都可以用一個實用的例子來解釋這個概念在一個非專業人士的總稱和概念?多態性,它是什麼,什麼不是

感謝

回覆讚賞

+0

多態性一般是指一種組件/方法/對象的表現不同在不同的特定條件/情況的能力。 –

+0

@XaviLópez你可以舉一個實際的例子 – Temitayo

+0

這裏有很多。例如,這是一個經典的例子:''''可以''makeSound()'。在執行'makeSound()'時,稱爲'Dog'的子類將會吠叫,另一個名爲'Cat'的喵喵叫將會喵喵叫。對於'Animal','makeSound()'方法的行爲有所不同,具體取決於哪個實例是實際的子類。 –

回答

2

下面是來自維基百科的解釋哈維·洛佩斯例如直接複製粘貼:

「有很多在那裏舉例來說,這是一個經典之一:動物可以makeSound()。在實現makeSound()時,動物的一個叫做Dog的子類將會叫聲,而另一個名爲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! 
+0

謝謝,闡述了答案沒有批評,上帝保佑你 – Temitayo

+0

我很高興它的幫助。如果您想要的全部內容,請將其標記爲「已接受的答案」。如果不是,請解釋您希望我擴展的內容,然後我可以爲您修改我的答案。 – TheOneWhoPrograms