7
スーパークラスからサブクラスへの明示的なキャスト
public class Animal { public void eat() {} } public class Dog extends Animal { public void eat() {} public void main(String[] args) { Animal animal = new Animal(); Dog dog = (Dog) animal; } } 割り当てDog dog = (Dog) animal;はコンパイルエラーを生成しませんが、実行時にを生成しClassCastExceptionます。コンパイラがこのエラーを検出できないのはなぜですか?