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

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

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
请问有谁知道如何实现子类转基类?
) Y3 p/ ^( h0 j& v. q, R类的定义如下:! \& [1 R2 L* _/ C3 C3 G% ?
  • <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

  • * K9 Q6 g3 I( G2 |2 S) v1 \

' S9 M, p, e  w( w
$ h( Y6 z" Y  P8 g4 Y7 a/ Q! Q
6 p3 f: m* S7 o) K  A* f# J# M我试图把几个子类对象拼成一个基类类型的向量,不成功。" N+ _, z6 v6 R! n3 \) q4 n
错误提示:  }- A( _) a, @7 M8 K% L
>> [derived1() derived2()]7 `4 _5 C, P  i6 i# M& p- u
错误使用 horzcat
( |* A9 v" g$ h" H% I( O8 L; ?从 derived2 转换为 derived1 时出现以下错误:1 \6 }/ U3 m7 }$ V, Y( d: t* K
输入参数太多。
4 c' C( p- B  E& ^
. e% k9 h( i# ^$ b6 E>> baseclass(derived1())5 V% B/ d, n8 ~2 Q: V
错误使用 baseclass! W+ W& Y' x6 K3 B, a4 g5 G: c
输入参数太多。
3 \) P/ K. s$ b" f5 d% L5 h5 O  q* f8 J8 L" r! f

5 K4 Y( m% M6 r2 q7 V0 J+ b  P( H使用系统自带的line scatter等类去做相同操作是成功的,能够得到基类graphics 的对象数组。/ q9 E9 E9 d3 S7 w4 F: q  z6 ^  e
>> hold all;[plot([1 2 3 4 5]),scatter([1 2 3 4 5],[2 3 4 5 6])]
! P/ D3 N# h$ B. ?: a: d- r& Pans =
4 j3 }0 R& ~" L  Y# ~6 A* M2 I  1×2 graphics 数组:
8 \5 R" \4 E0 h) T6 t' I    Line       Scatter* K, l% N( e; H, L7 q% P
请问能否实现与此类似的效果,把几个子类对象拼成一个基类类型的向量?需要如何修改?
5 ]! T& M( Q8 c) }% g! c
  • TA的每日心情
    开心
    2019-11-20 15:05
  • 签到天数: 2 天

    [LV.1]初来乍到

    2#
    发表于 2020-4-14 17:57 | 只看该作者
    / S' }3 f8 b  ?" q- u' {& Z
    试试把第一行 classdef (Abstract) baseclass < handle 改为
    ! l  b9 p+ Z  Z# Y, eclassdef (Abstract) baseclass < handle&matlab.mixin.Heterogeneous
    ( W+ f  b' M: C* N" G
    6 g1 M3 n, I* ?$ {即可正常工作。
    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    关闭

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

    EDA365公众号

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

    GMT+8, 2025-11-24 02:43 , Processed in 0.140625 second(s), 24 queries , Gzip On.

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

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

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