天天看點

java面向對象4-多态

定義:某一類事物的多種存在形态

表現形式:父類變量指向子類執行個體

  例:動物中貓,狗

  貓這個對象對應的類型是貓類型

  貓 x = new 貓();

  同時貓也是動物中的一種,也可以把貓稱為動物

  動物 y = new 貓();

  動物是貓和狗具體事物中抽取出來的父類型

  站在父類的角度看子類對象,看不到子類特有的屬性和方法

java面向對象4-多态
java面向對象4-多态
java面向對象4-多态
java面向對象4-多态
java面向對象4-多态

相同的的方法會被重寫,變量沒有重寫之說。如果子類聲明了父類一樣的變量,那意味着子類中将有兩個相同名稱的變量!

java面向對象4-多态

1.需要存在繼承或者實作關系

2.要有覆寫操作(子類對父類方法重寫)

3.父類類型變量指向子類執行個體

父類或者接口的變量指向子類(實作類)對象

子類對象的類決定方法的調用

多态的存在提高了程式的擴充性和後期可維護性

  note:編譯類型和運作時類型(引用資料類型)

java面向對象4-多态

成員方法:有

    編譯時:要檢視引用變量所屬的類中是否有所調用的成員

    在運作時:要檢視對象所屬的類中是否有所調用的方法

成員變量:無

    隻是編譯類型所指向的成員變量

    即:成員變量沒有多态性

靜态成員方法:無

    沒有多态性

java面向對象4-多态
java面向對象4-多态

   

java面向對象4-多态
java面向對象4-多态

向上轉型:相當于基本資料類型的隐式轉換;

向下轉型:類似于強制轉換

5.5

大多數人都以為是才智成就了科學家,他們錯了,是品格。---愛因斯坦