|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
请问有谁知道如何实现子类转基类?$ C3 X1 [3 |) O! y! g# z
类的定义如下:9 M6 m4 {1 A* ^6 s
- <div>% Matlab 2018B</div><div>classdef (Abstract) baseclass < handle
- </div> methods
- run(obj);
- end
- end
- classdef derived1 < baseclass
- methods
- function obj = derived1()
- end
- function run(obj)
- disp('derived1');
- end
- end
- end
- classdef derived2 < baseclass
- methods
- function obj = derived2()
- end
- function run(obj)
- disp('derived2');
- end
- end
- end
- 3 e1 J5 w& y" m+ R4 ~! r4 K: g4 o( W
) A9 a; E3 S( c$ f0 e: j9 e
' M& C8 K9 y; l, E$ k: i3 D2 E) L( o* `1 n5 @" v
我试图把几个子类对象拼成一个基类类型的向量,不成功。
; I# u$ }; ^5 r s# a) ? E& F) v错误提示:
6 y7 i) _5 r0 e3 K9 N4 h>> [derived1() derived2()]
5 W! F3 }* j( w3 L5 c6 z错误使用 horzcat$ s8 f4 Z6 `# W% W8 O9 ?8 N
从 derived2 转换为 derived1 时出现以下错误:
" V8 o# \6 g/ x- v0 v) P7 d( @% ^输入参数太多。) @$ D# r& o4 p- d; q; a
; A6 }& Q! u9 g& M8 x, i>> baseclass(derived1())1 j7 H8 h; r! _; O6 X
错误使用 baseclass
: L0 i! `( x; B* i4 `2 }输入参数太多。
. ~$ v$ a0 @1 H# L4 `* c, w4 @
6 v& ~# @) e( S. l, }; J: _* D' E- r+ z( d! J) S
使用系统自带的line scatter等类去做相同操作是成功的,能够得到基类graphics 的对象数组。
0 R5 B0 o7 V) s; a8 D4 n>> hold all;[plot([1 2 3 4 5]),scatter([1 2 3 4 5],[2 3 4 5 6])]/ _1 g7 Y8 l4 R- e; A7 @% b% G
ans =" A( |! O1 F( b0 n
1×2 graphics 数组: r' l& c& `$ B8 p
Line Scatter3 l- E0 ^! T' D# r6 H0 y
请问能否实现与此类似的效果,把几个子类对象拼成一个基类类型的向量?需要如何修改?
0 |$ x0 }- M3 h' B% \* q |
|