|
|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
请问有谁知道如何实现子类转基类?
1 P( l/ E; d- [类的定义如下:9 J6 [& D3 u3 b) F1 g6 P
- <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
+ y8 s: s$ }( z6 z5 U/ f $ s% ]) m/ `7 O, ^- C; r& n8 G9 v
" G7 ]; y) v& b# O* ]# _" v% i5 _; T" W5 K% O1 v5 K _
我试图把几个子类对象拼成一个基类类型的向量,不成功。& W1 k" E, a; {
错误提示:; B) ^2 t0 d( ?8 R8 z- q$ [
>> [derived1() derived2()]
/ L8 {4 O' C$ ?# s错误使用 horzcat/ ^- C! z; t; z5 A6 ^& O/ z8 g
从 derived2 转换为 derived1 时出现以下错误:
. z5 f; r' l) z/ K" {1 R+ b输入参数太多。' @9 i2 B! H$ a4 W
' x* X9 V% ~9 P. p8 _9 R>> baseclass(derived1())8 y/ [& G* Y8 p/ ]% e* H
错误使用 baseclass; Y. q5 V% H- E) y1 P
输入参数太多。4 S* ~- T P9 E) a& Q( j
, y0 @3 h& Z9 ]7 P# c8 n) f; H, T9 `' X$ l! H: L. w
使用系统自带的line scatter等类去做相同操作是成功的,能够得到基类graphics 的对象数组。
! u+ g2 |- N( Z/ I7 [! o Z>> hold all;[plot([1 2 3 4 5]),scatter([1 2 3 4 5],[2 3 4 5 6])]$ U+ g# k) J3 D6 ?% b# b+ V
ans = }) o- `, r. e. w5 T# u" h9 B
1×2 graphics 数组:6 k, V" j( c1 {
Line Scatter
8 s; e: B: M0 Z4 t V请问能否实现与此类似的效果,把几个子类对象拼成一个基类类型的向量?需要如何修改?; U9 c/ [6 h7 t4 j1 Y
|
|