繁体   English   中英

确定类的超类是否在Java中实现特定接口

[英]determine whether a class's superclass implements a certain interface in java

让我知道我是否做错了,但根据我的经验,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的实例?

你可以做一个

IAnimal.class.isAssignableFrom(Beagle.class)

要么

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

甚至带有接口的作品实例

if (object instanceof IAnimal) { }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM