|
|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
请问有谁知道如何实现子类转基类?
) Y3 p/ ^( h0 j& v. q, R类的定义如下:! \& [1 R2 L* _/ C3 C3 G% ?
- <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
* K9 Q6 g3 I( G2 |2 S) v1 \
' S9 M, p, e w( w
$ h( Y6 z" Y P8 g4 Y7 a/ Q! Q
6 p3 f: m* S7 o) K A* f# J# M我试图把几个子类对象拼成一个基类类型的向量,不成功。" N+ _, z6 v6 R! n3 \) q4 n
错误提示: }- A( _) a, @7 M8 K% L
>> [derived1() derived2()]7 `4 _5 C, P i6 i# M& p- u
错误使用 horzcat
( |* A9 v" g$ h" H% I( O8 L; ?从 derived2 转换为 derived1 时出现以下错误:1 \6 }/ U3 m7 }$ V, Y( d: t* K
输入参数太多。
4 c' C( p- B E& ^
. e% k9 h( i# ^$ b6 E>> baseclass(derived1())5 V% B/ d, n8 ~2 Q: V
错误使用 baseclass! W+ W& Y' x6 K3 B, a4 g5 G: c
输入参数太多。
3 \) P/ K. s$ b" f5 d% L5 h5 O q* f8 J8 L" r! f
5 K4 Y( m% M6 r2 q7 V0 J+ b P( H使用系统自带的line scatter等类去做相同操作是成功的,能够得到基类graphics 的对象数组。/ q9 E9 E9 d3 S7 w4 F: q z6 ^ e
>> hold all;[plot([1 2 3 4 5]),scatter([1 2 3 4 5],[2 3 4 5 6])]
! P/ D3 N# h$ B. ?: a: d- r& Pans =
4 j3 }0 R& ~" L Y# ~6 A* M2 I 1×2 graphics 数组:
8 \5 R" \4 E0 h) T6 t' I Line Scatter* K, l% N( e; H, L7 q% P
请问能否实现与此类似的效果,把几个子类对象拼成一个基类类型的向量?需要如何修改?
5 ]! T& M( Q8 c) }% g! c |
|