如何查找我的对象是否扩展了给定的抽象类?

我有主课


public class Main(){

   public static void main(String[] args){

      ArrayList<A> as = new ArrayList<>();

      C c = new C();

      D d = new D();

      E e = new E();


      as.add(c);

      as.add(d);

      as.add(e);


      for(A a : as){

         a.print(); // want to do it conditionally when Object inside list have extended class B

      }

   }

}

方法 print() 是从抽象类 A 扩展而来的。类 C 和 D 扩展了类 B,而 B 扩展了 A。


    A

  /   \

  B    E

 / \

C   D

我该怎么做?


尝试:


for(A a : as){

   if(a.getClass().getSuperclass().getSimpleName().equals("B")){

      a.print(); // Doesn't work a.getClass().getSuperclass().getSimpleName() prints A

   }

}

任何提示来实现这一目标?


ABOUTYOU
浏览 99回答 1
1回答

Cats萌萌

您可以使用instanceof:for(A a : as){&nbsp; &nbsp; if(a instanceof B){&nbsp; &nbsp; &nbsp; &nbsp; a.print();&nbsp; &nbsp; }}
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python