假设我们有一个名为A
和一些子类(B
,C
,D
, ETC。)。大多数子类都有这个方法do()
但基类没有。
班级AA
提供了一个方法叫做getObject()
,这将创建一个类型的对象B
, or C
or D
等,但将对象作为类型返回A
.
如何将返回的对象转换为具体类型并调用它do()
方法,请问这个方法可以吗?
EDIT:
我不被允许改变类的实现A
、子类或AA
,因为我使用的是封闭源 API。是的,它确实存在一些设计问题,如您所见。
你可以测试instanceof
并致电do()
方法:
A a = aa.getObject();
if (a instanceof B) {
B b = (B) a;
b.do();
}
// ...
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)