换句话说,如何强制一个方法只使用给定输入参数的子类,它是一个超类?
例子:
public class Animal {
...
}
public class Dog extends Animal {
...
}
public class Cat extends Animal {
...
}
public class Test {
...
public void makeSound(Animal animal) throws Exception{
if(animal instanceof Dog){
System.out.println("bark");
} else if (animal instanceof Cat) {
System.out.println("meow");
} else {
throw new Exception ("Not valid subclass of Animal");
}
}
}
上面的代码似乎有些错误,有没有更好、更有效或更通用的方法?