|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
请问有谁知道如何实现子类转基类?: L( G. }/ k, G; [$ B$ r. C
类的定义如下:
2 Z+ S+ m- I+ o/ N- V- <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
1 O4 ]$ h& Q( i; Q
# U) ^, b- K6 D& p3 e% y$ o
0 ]& U9 u# n* \; ?* S5 l- E3 m2 [+ k
1 G6 i6 M. g& m9 E我试图把几个子类对象拼成一个基类类型的向量,不成功。
8 H- N5 V& h% U7 u% D% ?$ s错误提示:
( D/ l, `" V* } f, d# ?. J>> [derived1() derived2()]( H1 X0 t' ^7 }4 f& @$ U
错误使用 horzcat; O7 y' F# Y1 {8 |6 X7 [$ p% ]
从 derived2 转换为 derived1 时出现以下错误:
8 m0 \ b" d1 l/ H9 E+ ~+ K输入参数太多。
6 {0 W1 q7 q) p" c. _5 P5 o1 L6 s: K2 B% x2 z/ s- O
>> baseclass(derived1())
* `% b2 `' g9 y# n; T1 ]2 D* j! e错误使用 baseclass' ~4 l0 g) ~ z/ q3 T+ e6 g
输入参数太多。9 U& r R7 U( H
$ X1 r+ ^/ i/ v8 k+ W7 @+ D' R
. M) \: k* C' f3 V" p, \$ f0 w使用系统自带的line scatter等类去做相同操作是成功的,能够得到基类graphics 的对象数组。: f x b& ~2 D3 [6 |
>> hold all;[plot([1 2 3 4 5]),scatter([1 2 3 4 5],[2 3 4 5 6])]
! g" P. b. V$ G6 tans =" E1 {) _* O2 {5 ~
1×2 graphics 数组:1 v4 R- m' u4 a& l4 d1 ~
Line Scatter
9 Y" v, z" S" c! v+ w请问能否实现与此类似的效果,把几个子类对象拼成一个基类类型的向量?需要如何修改?. { F) z& H) j* R: K
|
|