我想创建一个抽象类的数组,并对数组的每个元素调用run()方法,这些元素引用该类的一个实现。在
在类似Java的代码中(请原谅语法,这只是为了说明一点),代码应该类似于:
abstract class Base{
public void run();
}
class Derived0 extends Base{
public void run(){...};//overrides Base's run() method
}
class Derived1 extends Base{
public void run(){...};//overrides Base's run() method
}
class Derived2 extends Base{
public void run(){...};//overrides Base's run() method
}
主要:
^{pr2}$我想在matlab中实现这种行为
到目前为止,我对这个问题的回答是:
Inheritence Polymorphism In Matlab
我缺少的是如何制作数组baseArray?在
像baseArray = []
这样的事情会导致baseArray(1) = Derived0;
期望加倍,因此失败。在
在matlab中不可能实例化一个Base数组,因为这个类是抽象的,并且用matlab创建对象数组的方法(我知道)不能创建实例。在
所以,请帮我在Matlab中实现一个多态数组。在
我也希望使用python解决方案,尽管Matlab解决方案是最好的。在
谢谢!在
在MATLAB中,如果用} method 来创建该类的空数组。在
baseArray = []
实例化数组,那么您已经声明该数组将是double
类型,因此它不能工作。相反,您可以使用类的^{或者,您可以一次创建数组
^{pr2}$另外,如果您想要一个异构的对象数组,您需要确保您的基类也继承自^{} ,然后您就可以这样做了
^{3}$相关问题 更多 >
编程相关推荐