超类和子类。如果一个类从它的超类继承的方法,则有机会改写,只要它不标记为final的方法。
重载的好处是:定义一个行为是特定于该子类的类型表示一个子类可以实现根据它要求一个父类的方法的能力。
在面向对象的术语,重载表示覆盖现有的方法的功能。
例子:
让我们来看一个例子。
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 reference and object Animal b = new Dog(); // Animal reference but Dog object a.move();// runs the method in Animal class b.move();//Runs the method in Dog class } }
这将产生以下结果:
Animals can move Dogs can walk and run
在上面的例子中,可以看到,即使b为一类动物的并运行在狗类中的move方法。这样做的原因是:在编译时,检查是在引用类型。然而,在运行时,JVM计算出的对象类型和运行将属于特定对象的方法。
因此,在上面的例子中,程序将正确编