public class AnimalTest {
public void func(Animal animal) {
animal.eat();
animal.shout();
}
}
class Animal{
public void eat() {
System.out.println("进食");
}
public void shout() {
System.out.println("叫");
}
}
class Dog extends Animal{
public void eat() {
System.out.println("狗粮");
}
public void shout() {
System.out.println("汪汪");
}
}
class Cat extends Animal{
public void eat() {
System.out.println("鱼");
}
public void shout() {
System.out.println("喵~");
}
因为你传入的参数Animal animal是一个实例,所以可以调用
1、“方法形参为什么可以放其它类”。Java也没有规定不能放吧
2、“没有实例化也可以调用”。它这里只是声明了 它需要传入的是Animal类型的对象,至于传入的到底是不是Animal、有没有实例化,要到调用的时候才知道。