「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); 造成編譯錯誤
原因:
介面與父類別有相同的變數名稱,會造成不知該抓取哪個值。
所以需要告知要抓取哪個變數。
留言
張貼留言