我有父类Animal和子类Dog
public class Animal {
public void bark() {
System.out.println("sua");
}
}
和
public class Dog extends Animal {
public void bark() {
System.out.println("Go go");
}
public void eat(){
System.out.println("an com");
}
}
和班级主
public class MainDemo {
public static void main(String[] args) {
Animal animal = new Dog();
animal.bark();
animal.eat();
}
}
为什么实例动物在多态运行时
期间没有调用方法线程中的异常" main" java.lang.Error:未解决的编译问题: 对于Animal
类型,方法eat()未定义
at tinhdahinh.MainDemo.main(MainDemo.java:8)
答案 0 :(得分:0)
基类必须声明由派生类重写的任何方法。它不必实现它们,但必须声明该方法,以便当基类的派生对象调用该方法时,虚拟调度程序知道如何将调用路由到正确的位置。
在Animal
类中,添加此声明:
abstract void eat();
此方法强制派生类实现eat
方法。如果您不想强制它们使用eat
方法,请提供一个空实现:
public void eat() { }