0

如果我错了,请告诉我,但根据我的经验,instanceof 调用并不能满足我的需要。

我有一个实现接口并显式覆盖接口中所有方法的抽象类。我有这个类的一个子类。如何判断子类是否是接口的实例?

public interface IAnimal {
    public void eat();
}

public abstract class Dog implements IAnimal {
    @Override
    public void eat(){
        //eat things
    }

    public abstract void bark();
}

public class Beagle extends Dog {
    @Override
    public void bark(){
        //specific bark
    }
}

所以我有一个 Beagle 的实例,我如何确定它是否是 IAnimal 的实例?

4

1 回答 1

1

你可以做一个

IAnimal.class.isAssignableFrom(Beagle.class)

或者

IAnimal.class.isAssignableFrom(someObjectInstance.getClass());

甚至是接口作品的实例

if (object instanceof IAnimal) { }
于 2013-04-24T00:46:13.993 回答