类1:
public class Test {
public void voice(){
System.out.println("普通动物叫声");
}
}
class Cat extends Test{
public void voice(){
System.out.println("喵喵喵");
}
}
class Dog extends Test{
public void voice(){
System.out.println("汪汪汪");
}
}
class Pig extends Test{
public void voice(){
System.out.println("哼哼哼");
}
}
类2:
public class Test2 {
public static void testAnimalVoice(Cat c){
c.voice();
}
public static void testAnimalVoice(Dog c){
c.voice();
}
public static void testAnimalVoice(Pig c){
c.voice();
}
public static void main(String[] args) {
Dog b = new Dog();
testAnimalVoice(b);
}
}
重写时形参的名字没实际的影响, 例如我把Dog对象命名为b而形参是c但是也是一样的使用。重点在于是哪个对象。而不是形参的名字。