找回密码
 注册
关于网站域名变更的通知
查看: 396|回复: 1
打印 上一主题 下一主题

请问有谁知道如何实现子类转基类?

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2020-4-14 14:50 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您登录!

您需要 登录 才可以下载或查看,没有帐号?注册

x
请问有谁知道如何实现子类转基类?
% E7 ^( e: l- C- Y. q0 f类的定义如下:. f" t$ O6 ]' p% w; ^
  • <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

  • 0 ^. @* V6 Z3 U3 k) `! }+ I0 r- L
5 S/ C, G3 C0 N, d
+ o" Y  L3 L0 @0 E: ^; h

/ A  l: k! C: ]+ W, G: c" Y我试图把几个子类对象拼成一个基类类型的向量,不成功。
$ A- e4 o" I) ^! q5 z0 a; {. x错误提示:, U, n# G1 e) A7 `# w# M
>> [derived1() derived2()]
; F; y6 ^. P: b+ g& K; }* h错误使用 horzcat
3 K  a2 {) g; W! P6 V8 ]从 derived2 转换为 derived1 时出现以下错误:
# W  M% [4 S' `6 `/ _: `输入参数太多。
, L- t/ g6 k" K9 d- b1 R+ l
& `$ o9 Z, W( _8 A>> baseclass(derived1())! f; c/ M% f- |3 m  T. i6 `0 \
错误使用 baseclass2 N+ `$ `5 O! V/ B. \; d) x3 p
输入参数太多。
2 g4 t. d0 `( C2 t+ j1 _% D/ R8 k4 j
5 f% n$ H$ w" V( m' v% @7 a
使用系统自带的line scatter等类去做相同操作是成功的,能够得到基类graphics 的对象数组。5 l, u8 @6 w; a* g1 C' C" h
>> hold all;[plot([1 2 3 4 5]),scatter([1 2 3 4 5],[2 3 4 5 6])]
9 A6 n3 c  }3 [ans =8 g2 L: G3 D" f2 D3 b4 p0 j0 E
  1×2 graphics 数组:
) L. D1 T- W, P8 J/ t# g4 z9 t    Line       Scatter
. [  y0 j2 ^( Y5 z请问能否实现与此类似的效果,把几个子类对象拼成一个基类类型的向量?需要如何修改?
* J5 K& I) F) m/ e/ y8 u  i
  • TA的每日心情
    开心
    2019-11-20 15:05
  • 签到天数: 2 天

    [LV.1]初来乍到

    2#
    发表于 2020-4-14 17:57 | 只看该作者
    ( F0 u+ M1 W; F% G8 p& k
    试试把第一行 classdef (Abstract) baseclass < handle 改为2 D" |$ x) B  ?1 X8 H
    classdef (Abstract) baseclass < handle&matlab.mixin.Heterogeneous
    / R" p: |$ D% a* s$ z, I% @) u8 l. S  ^* b# u, x/ I# b% F, T6 q
    即可正常工作。
    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    关闭

    推荐内容上一条 /1 下一条

    EDA365公众号

    关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

    GMT+8, 2025-10-6 23:03 , Processed in 0.109375 second(s), 23 queries , Gzip On.

    深圳市墨知创新科技有限公司

    地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

    快速回复 返回顶部 返回列表