确定类的超类是否在java中实现某个接口

时间:2013-04-24 00:41:27

标签: java inheritance 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的一个实例?

1 个答案:

答案 0 :(得分:1)

你可以做一个

IAnimal.class.isAssignableFrom(Beagle.class)

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

甚至是带有接口

的实例
if (object instanceof IAnimal) { }