0
其他情形請看下面的代碼:在重寫接口
public class Main implements Vehicle, Car {
public static void main(String[] args) {
Main generalConcreteClass = new Main();
System.out.println(((Vehicle) generalConcreteClass).TYPE); //**Line 1**
Vehicle vehicle = new Main(); //**Line 2**
System.out.println(vehicle.TYPE);// Here there is no Ambiguity since vehicle is of TYPE vehicle
System.out.println(((Car)vehicle).TYPE); // **Line3** This doesn't throw ClassCastException..
}
}
在這裏,無論是接口汽車及汽車具有相同的常量類型具有不同的價值。
Line1中的generalConcreteClass會有不明確的地方,所以需要進行類型轉換,並且可以訪問TYPE中的任何一個。第二行:車輛對象具有車輛接口的參考。
Line3:如何將我的車輛對象轉換爲車型並仍然可以訪問常量車型。車輛物體如何變得可見?或者它如何在內部工作?
現在,如果我不讓我的類實現Car接口,那麼類型Car類型的車輛類型鑄造拋出ClassCastException。