|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
请问有谁知道如何实现子类转基类?
$ P: Y- |% B8 T0 d2 d- d类的定义如下:) W8 Y6 |( b% ?7 s$ w" N
- <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
- 6 E1 K- u6 c" V
+ z) P# n, ^' G, A, j6 {% E
' o3 i- b1 I3 O4 a9 P; a7 z) r! `( i% Y" T8 U
我试图把几个子类对象拼成一个基类类型的向量,不成功。
8 Z" {. u% s1 O# S错误提示:
) t; C0 h8 t9 H>> [derived1() derived2()]
% w4 h W5 {% ?6 D& @" q @错误使用 horzcat
S+ D5 S( c! r1 W从 derived2 转换为 derived1 时出现以下错误:
7 G% y% r* `1 ?: x* {2 \输入参数太多。
4 L }+ D: E" X/ U* I
# o6 ?' I! {) r/ J3 a+ H& z2 \) y>> baseclass(derived1())
' L7 C+ S% j" A3 j+ y ?" C7 X m1 x错误使用 baseclass
& J% J |( y) Z5 @/ R" e输入参数太多。
9 N! U5 q; x! i! q1 r6 y) R4 ~# n1 v+ t2 T! L+ N
" W% S0 k0 }- e# M! ~0 {; o$ f" L使用系统自带的line scatter等类去做相同操作是成功的,能够得到基类graphics 的对象数组。* w0 d' G- j2 R. v1 _
>> hold all;[plot([1 2 3 4 5]),scatter([1 2 3 4 5],[2 3 4 5 6])]
s/ P( q- p. P# F. b# R: o; Q) Z& Jans =5 T X0 u6 H2 J8 g& h4 y& W
1×2 graphics 数组:+ y0 U( [ w0 N
Line Scatter! X' h6 w% R+ `6 v b2 J; @
请问能否实现与此类似的效果,把几个子类对象拼成一个基类类型的向量?需要如何修改?
% g$ |2 N8 Z- O- n! H6 E ^ |
|