我有两个类,derivedClassA
它们derivedClassB
都扩展了parentClass
我要声明var o:parentClass
的内容,然后,根据发生的情况,我想将其转换o
为 typederivedClassA
或derivedClassB
.
本质上,这是:
var o:parentClass
...
if(shouldUseA)
o = new derivedClassA();
else
o = new derivedClassB();
o.doSomething();
但它不起作用,我遇到了各种各样的错误。这不是类继承的工作原理吗?我觉得我错过了一些非常基本的东西,但我不知道是什么。我应该改用接口吗?还有另一种方法可以做我想做的事吗?
编辑澄清:
-doSomething()
被定义parentClass
为公共,并在派生类中override public function doSomething()
- 我得到的错误是“通过静态类型 parentClass 的引用调用可能未定义的方法 doSomething”。和“将 derviedClassA 类型的值隐式强制转换为不相关的类型 parentClass”