本质说明
1、在编译阶段,编译器只知道对象的静态类型,而不知道实际类型,因此只能在class文件中确定调用父类的方法。
2、在执行过程中,它将判断对象的实际类型。如果实际类型实现了这种方法,它将被直接调用。如果没有实现,它将根据继承关系从下到上进行检索。只要检索到,它将被调用。如果没有检索到,它将被抛弃。
实例
class Animal { void eat() { System.out.println("eating..."); } } class Dog extends Animal { void eat() { System.out.println("eating bread..."); } }
以上就是java中方法重写的本质,希望对大家有所帮助。更多Java学习指路:
本教程操作环境:windows7系统、java10版,DELL G3电脑。