我們都知道“哺乳動物有很多種叫聲”,比如:“吼”“嚎”“汪汪”“喵喵”等等,這就是叫聲的多態(tài)。
那么當一個類有很多子類時,并且這些子類都重寫了父類中的某個方法,當我們把子類創(chuàng)建的對象的引用放到一個父類的對象中時,就得到了該對象的一個上轉型對象,此時,這個上轉型對象在調(diào)用這個方法時就可能具有多態(tài),因為不同的子類在重寫父類的方法時可能產(chǎn)生不同的行為。
比如:狗類的上轉型對象調(diào)用“叫聲”方法時產(chǎn)生的行為是“汪汪”,而貓類的上轉型對象調(diào)用“叫聲”方法時產(chǎn)生的行為是“喵喵”等等。
多態(tài)性就是指父類的某個方法被其子類重寫時,可以各自產(chǎn)生自己的功能行為。
例如:
class 動物 { void cry() { } } class 狗 extends 動物 { void cry() { System.out.println("wangwang"); } } class 貓 extends 動物 { void cry() { System.out.println("miaomiao"); } } public class Main { public static void main(String args[]) { 動物 animal; animal = new 狗(); animal.cry(); animal = new 貓(); animal.cry(); } }
運行結果如下:
wangwang miaomiao
C語言網(wǎng)提供由在職研發(fā)工程師或ACM藍橋杯競賽優(yōu)秀選手錄制的視頻教程,并配有習題和答疑,點擊了解:
一點編程也不會寫的:零基礎C語言學練課程
解決困擾你多年的C語言疑難雜癥特性的C語言進階課程
從零到寫出一個爬蟲的Python編程課程
只會語法寫不出代碼?手把手帶你寫100個編程真題的編程百練課程
信息學奧賽或C++選手的 必學C++課程
藍橋杯ACM、信息學奧賽的必學課程:算法競賽課入門課程
手把手講解近五年真題的藍橋杯輔導課程