您可以使用instanceof来检查对象是否是特定类的实例.例如:
if (animal instanceof Cat) {
Cat cat = (Cat) animal;
cat.meow();
} else if (animal instanceof Dog) {
Dog dog = (Dog) animal;
dog.bark();
}
Run Code Online (Sandbox Code Playgroud)
然而,过度使用instanceof(或者说是向下铸造)通常被认为是设计不良的标志.最好是利用多态性.例如,在Animal中有一个(可能是抽象的)"speak"方法,然后每个子类将有不同的实现.然后上面的代码将替换为发言:
animal.speak();
Run Code Online (Sandbox Code Playgroud)