Java 中的方法重写

javajava programming java 8

重写是定义特定于子类类型的行为的能力,这意味着子类可以根据其要求实现父类方法。

在面向对象术语中,重写意味着覆盖现有方法的功能。

示例

让我们看一个例子。

现场演示

class Animal {
   public void move() {
      System.out.println("Animals can move");
   }
}
class Dog extends Animal {
   public void move() {
      System.out.println("Dogs can walk and run");
   }
}
public class TestDog {
   public static void main(String args[]) {
      Animal a = new Animal(); // Animal 引用和对象
      Animal b = new Dog();  // Animal 引用但 Dog 对象
      a.move();  // 运行 Animal 类中的方法
      b.move(); // 运行 Dog 类中的方法
   }
}

输出

将产生以下结果 −

Animals can move
Dogs can walk and run

在上面的例子中,你可以看到,尽管 b 是 Animal 的类型,但它运行 Dog 类中的 move 方法。原因是:在编译时,对引用类型进行检查。然而,在运行时,JVM 会找出对象类型并运行属于该特定对象的方法。
因此,在上面的例子中,程序将正确编译,因为 Animal 类具有 move 方法。然后,在运行时,它运行特定于该对象的方法。


相关文章