为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

ABOUTYOU 2021-06-30 09:05:12
我有主课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   }}任何提示来实现这一目标?
查看完整描述

1 回答

?
Cats萌萌

TA贡献1805条经验 获得超9个赞

您可以使用instanceof:


for(A a : as){

    if(a instanceof B){

        a.print();

    }

}


查看完整回答
反对 回复 2021-07-07
  • 1 回答
  • 0 关注
  • 98 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信