class Vehicle {
public void printSound() {
System.out.print("vehicle");
}
}
class Car extends Vehicle {
public void printSound() {
System.out.print("car");
}
}
class Bike extends Vehicle {
public void printSound() {
System.out.print("bike");
}
}
public class Test {
public static void main(String[] args) {
Vehicle v = new Car();
Bike b = (Bike) v;
v.printSound();
b.printSound();
}
}
私の質問は次のとおりです。実行時エラーではなく、その結果を行う理由コンパイルエラー?コンパイラは 'v'がすでに '車'であり、 'バイク'にキャストできないことを知ってはいけませんか?
ニースと簡単な説明。今後のJLS SE8への直接参照用https://docs.oracle.com/javase/specs/jls/se8/html/jls-5.html – georger