我們都知道“哺乳動物有很多種叫聲”,例如:“吼”“嚎”“汪汪”“喵喵”等等,這就是叫聲的多態。
那麼當一個類別有很多子類別時,而這些子類別都重寫了父類別中的某個方法,當我們把子類別建立的物件的參考放到一個父類別的物件中時,就得到了該物件的一個上轉型對象,此時,這個上轉型對像在呼叫這個方法時就可能具有多態,因為不同的子類別在重寫父類別的方法時可能產生不同的行為。
例如:狗類的上轉型對象調用“叫聲”方法時產生的行為是“汪汪”,而貓類的上轉型對象調用“叫聲”方法時產生的行為是“喵喵”等等。
多態性就是指父類別的某個方法被其子類別重寫時,可以各自產生自己的功能行為。
例如:
class動物{voidcry(){}}class狗extends動物{voidcry(){System.out.println(wangwang);}}class貓extends動物{voidcry(){System.out.println(miaomiao);}}publicclassMain {publicstaticvoidmain(Stringargs[]){動物animal;animal=new狗();animal.cry();animal=new貓();animal.cry();}}
運行結果如下:
wangwangmiaomiao