方法覆盖可以实现Java中的多态性
使得同一个方法名可以根据不同的参数类型调用不同的方法,从而提高代码的灵活性和可扩展性。
代码示例:
class Animal {
public void move() {
System.out.println("动物在移动");
}
}
class Dog extends Animal {
public void move() {
System.out.println("狗在奔跑");
}
}
class Bird extends Animal {
public void move() {
System.out.println("鸟在飞翔");
}
}
public class Test {
public static void main(String[] args){
Animal animal1 = new Dog();
Animal animal2 = new Bird();
animal1.move();
animal2.move();
}
}
输出结果为:狗在奔跑 鸟在飞翔
解释:在创建Animal类型的变量时,将Dog类型和Bird类型的对象分别赋值给了这两个变量,这就是向上转型。在调用move()方法时,由于变量的类型是Animal,但是实际对象的类型分别是Dog和Bird,因此调用的是Dog类和Bird类中的move()方法,从而输出“狗在奔跑”和“鸟在飞翔”。