「Java」「interface欄位與父類別欄位同名」 Chapter5 Question3
Given:
Answer:
原因:
介面與父類別有相同的變數名稱,會造成不知該抓取哪個值。
所以需要告知要抓取哪個變數。
interface Car{ String a = "Car"; public void detail(); } class SuperCar{ static String a = "SuperCar"; } public class Test4 extends SuperCar implements Car{ @Override public void detail() { System.out.println("轎車"); } public static void main(String[] args) { new Test4().detail(); System.out.println("a:"+a);//a欄位值模擬兩可 field a is ambiguous. System.out.println("a:"+SuperCar.a); System.out.println("a:"+Car.a); } }
Answer:
System.out.println("a:"+a); 造成編譯錯誤
原因:
介面與父類別有相同的變數名稱,會造成不知該抓取哪個值。
所以需要告知要抓取哪個變數。
留言
張貼留言