explicite de la coulée de super-classe de la sous-classe

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;
    }
}

La cession Dog dog = (Dog) animal; ne génère pas d'erreur de compilation, mais à l'exécution, il génère un ClassCastException. Pourquoi ne peut pas le compilateur de détecter cette erreur?

  • VOUS dites que le compilateur détecte PAS l'erreur.
InformationsquelleAutor saravanan | 2011-02-01