如何创建一个子类内置类?

5视图(30天)
马丁Moennigmann
马丁Moennigmann 2017年2月21日
回答: 菲利普Borghesani 2017年2月21日
我无法创建一个子类内置类ss(状态空间系统,控制系统工具箱的一部分)。类的构造函数,包括调用父类构造函数,返回一个实例。这个实例的方法“new_method”()函数列表的方法,但是当我的实例上调用该方法,它不是发现了这里的翻译是很短的版本的代码,生成描述问题:
classdefmy_subclass <党卫军
属性
my_prop
结束
方法
函数obj = my_subclass (the_value)
%的构造函数。
obj = obj@ss ();%调用超类构造函数不是必需的,
%,但使代码更加清晰
obj。my_prop = the_value;
结束
函数obj = new_method (obj the_value)
%的简单示例存在根据的一种方法
%()函数方法,但不能被称为。
obj。my_prop = the_value;
结束
结束
结束
实例化工作正常:
> > = my_subclass实例(3)
实例=
状态空间模型。
> > instance.my_prop
ans =
3
> >
新方法:
> >方法(实例)
方法类my_subclass:
new_method %方法的结果是太长时间显示在这里,但它确实包含“new_method”。
称“new_method”导致一个错误:
> > instance.new_method (4)
错误使用InputOutputModel / subsref(44)行
没有房地产类的“my_subclass”匹配的字符串“new_method”。使用属性来获取这个类的属性列表。
> >
1评论
马丁Moennigmann
马丁Moennigmann 2017年2月21日
注意,下面的matlab相关文档页面,但不提供一个回答我的问题(至少对我来说):内置类型的子类的属性matlab内置类型的子类

登录置评。

答案(1)

菲利普Borghesani
菲利普Borghesani 2017年2月21日
你做对了一般,但ss类应该被标记为 密封 ,我建议不子类化。只有一个学生类的属性及其子可以用点索引、访问调用一个方法使用直接方法调用:
% instance.new_method(4) %将失败
new_method(例如,4)%正确调用new_method

类别

找到更多的在构建和使用对象数组帮助中心文件交换

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!