方法名(参数列表) 要完全一致
发布时间:2025-06-24 20:11:32 作者:北方职教升学中心 阅读量:881
方法名(参数列表) 要完全一致。非private修饰,非final修饰,非构造方法等的实现过程 进行重新编写, 返回值和形参都不能改变。
然后我们用对象animal去调用它试试看能否运行。
public static void main(String[] args) { Dog dog = new Dog("小白", 3); Cat cat = new Cat("汤姆", 5); eat(dog); eat(cat);}

class Animal { public String name; public int age; public Animal(String name, int age) { this.name = name; this.age = age; } public void eat() { System.out.println(name + "正在吃东西"); }}class Dog extends Animal { public String color; public Dog(String name, int age) { super(name, age); this.color = color; } /*@Override public void eat() { System.out.println(name +"正在吃狗粮"); }*/ public void bark() { System.out.println(name + "汪汪汪"); }}class Cat extends Animal { public Cat(String name, int age) { super(name, age); } public void eat() { System.out.println(name + "正在吃猫粮"); } public void mew() { System.out.println(name + "喵喵喵"); }}public class Test { public static void eat(Animal animal) { animal.eat(); } public static void main(String[] args) { Dog dog = new Dog("小白", 3); Animal animal = dog;//animal这个引用指向了Dog对象 Cat cat = new Cat("汤姆", 5); cat = (Cat) animal; cat.mew(); }}
Animal向下转型为Cat,Cat本来就是猫,转换为猫,安全;Animal向下转型为Dog,Cat本来是猫,转换为狗,则不安全。
4.最后就可以对父类的方法进行重写,如果我们不小心把重写的方法名写错了,@Override就可以帮我们检测出来,使我们在重写方法时更加方便。