matlab 数组构造函数,matlab – 与超类和子类构造函数连接

我在matlab文档和以前有关使用matlab继承和类构造函数来创建接口的问题时遇到了麻烦.在包装内使其整洁.

而不是拖动我的代码我可以压缩它如下:

一个包MyPkg有一个超类Super和几个子类Sub1 Sub2 …我的大多数属性和方法都是在Super中定义的,这样Sub1和Sub2实际上只存在于将它们的构造函数用于简单例程或者从Super中重载的一些方法.

那么我该如何编写classdef和构造函数来支持我可以使用以下调用的接口:

a = MyPkg.Super(args).Sub1(args)

b = MyPkg.Super(args).Sub1(args).Sub1Method

在这种情况下,为了便于阅读和组织,我想保留与Super相关的参数与Sub1相关的参数.

欢迎提出问题.

编辑:

在考虑了下面接受的答案并进行了一些浏览后,我得出的结论是,上面显示的界面实际上并不符合OO的精神,对于我的数据分析应用程序,一种更合适的方法来处理它将包含一个带有填充对象属性的对象或单元数组的构造函数.因为类是句柄类,所以可以使用它上面的方法来生成所需的方法.即以下

% in +MyPkg\

classdef Super < handle

properties

outputArray

end

methods

function self = Super(args)

self.outputArray=load_values(args);

end

function out = do_analysis(self,params)

% do some analysis

end

end

end

然后使用这个:

data1 = MyPkg.Super(args)

% Populate the outputArray

analysis1 = data1.do_analysis(params)

等等.,

希望能帮助其他人处理这些问题

最佳答案 关于你的问题,如果使用继承,则不能.只能从子类调用直接超类构造函数,只能从子类调用超类构造函数.

Ref.

公开这样的超类真正打破了继承的基础.也许你应该考虑另一种模式,也许是组合(“有一个”而不是“是一个”),如果你需要那种访问?

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值