當子類別重新定義父類別的屬性時稱之為遮蔽
當子類別物件被轉型為父類別時
使用覆寫的方法時會呼叫子類別中定義的方法
使用遮蔽的屬性時會使用父類別中定義的屬性
但依舊可以在物件內部使用super來使用父類別定義的方法與屬性
package learning.test; public class overloadtest { public static void main(String[] args) { Banana mybanana = new Banana(); System.out.println(mybanana.name); System.out.println(mybanana.getName()); System.out.println(((Banana) mybanana).name); System.out.println(((Banana) mybanana).getName()); System.out.println(((MyFruit) mybanana).name); System.out.println(((MyFruit) mybanana).getName()); } } class MyFruit { String name = "Fruit"; String getName() { return name; } } class Banana extends MyFruit { String name = "Banana"; String getName() { return name; } }輸出:
在程式第10行中將物件轉型為MyFruit型態,其name屬性輸出為Fruit。
在程式第11行中將物件轉型為MyFruit型態,但其getName()方法輸出為Banana。
Banana Banana Banana Banana Fruit Banana
沒有留言:
張貼留言