Ниже приведен пример кодаРазъяснение в справочной переменной понижающее приведение в Java
class Animal {
void makeNoise() {System.out.println("generic noise"); }
}
class Dog extends Animal {
void makeNoise() {System.out.println("bark"); }
void playDead() { System.out.println("roll over"); }
}
class DogTest {
public static void main(String [] args) {
Animal animal = new Animal();
Dog d = (Dog) animal;
d.makeNoise();
}
}
Приведенный выше код компилируется, но когда я пытаюсь запустить его, я получаю
java.lang.ClassCastException
Мое предположение заключается в том, что он должен печатать «общий шум», потому что во время выполнения он должен вызывать действительный метод makeNoise() объекта Animal без каких-либо исключений.
У меня есть ваше мнение. благодаря –