|
|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
请问有谁知道如何实现子类转基类?2 _4 J* \) t3 R' E7 h) W
类的定义如下:3 d) U( O }0 W6 z2 O8 b9 a
- <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
. B5 Z0 ^( o4 n0 g5 w . S) v/ Z! I% N7 z2 {7 `3 w* N' z: s
6 I% w7 { u# o' x7 Z
2 A' f* K3 S$ n. W. T我试图把几个子类对象拼成一个基类类型的向量,不成功。) M& C7 |6 P/ I# G1 u' U# d' l! O
错误提示:
7 H& V9 E2 d6 X* n8 z>> [derived1() derived2()]
/ U' \, |" ]; `; B+ h; A错误使用 horzcat6 _% p/ p/ L5 N9 A; Q/ F
从 derived2 转换为 derived1 时出现以下错误:
" G- Z H- f: J0 \输入参数太多。
( n7 o) Y" Y( S8 J, B
/ }6 p: n7 X9 f* Q2 b>> baseclass(derived1())
; b1 @$ K8 k/ [) N/ ~错误使用 baseclass/ {1 \5 d0 |: D) w& z I J( L# w
输入参数太多。
4 z% B8 n1 j/ L$ }8 ~. r6 b5 ~7 Z$ [$ u, f* h8 x3 O+ P0 n, w1 V
9 } \7 z7 i: F% A2 b8 t使用系统自带的line scatter等类去做相同操作是成功的,能够得到基类graphics 的对象数组。
9 \- Q1 c( D% Q- Y" I>> hold all;[plot([1 2 3 4 5]),scatter([1 2 3 4 5],[2 3 4 5 6])], b+ d3 e4 c9 F1 B* l" e
ans =
3 O1 O+ s' p8 P 1×2 graphics 数组:
2 S/ R7 }- ^7 H8 T+ ]/ A0 N1 { Line Scatter
( G: o! r9 ^3 t& w请问能否实现与此类似的效果,把几个子类对象拼成一个基类类型的向量?需要如何修改?7 v- _; F: d9 A3 ^! ]9 F) K H
|
|