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

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

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
请问有谁知道如何实现子类转基类?
$ P: Y- |% B8 T0 d2 d- d类的定义如下:) W8 Y6 |( b% ?7 s$ w" N
  • <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
  • 6 E1 K- u6 c" V

+ z) P# n, ^' G, A, j6 {% E
' o3 i- b1 I3 O4 a9 P; a7 z) r! `( i% Y" T8 U
我试图把几个子类对象拼成一个基类类型的向量,不成功。
8 Z" {. u% s1 O# S错误提示:
) t; C0 h8 t9 H>> [derived1() derived2()]
% w4 h  W5 {% ?6 D& @" q  @错误使用 horzcat
  S+ D5 S( c! r1 W从 derived2 转换为 derived1 时出现以下错误:
7 G% y% r* `1 ?: x* {2 \输入参数太多。
4 L  }+ D: E" X/ U* I
# o6 ?' I! {) r/ J3 a+ H& z2 \) y>> baseclass(derived1())
' L7 C+ S% j" A3 j+ y  ?" C7 X  m1 x错误使用 baseclass
& J% J  |( y) Z5 @/ R" e输入参数太多。
9 N! U5 q; x! i! q1 r6 y) R4 ~# n1 v+ t2 T! L+ N

" W% S0 k0 }- e# M! ~0 {; o$ f" L使用系统自带的line scatter等类去做相同操作是成功的,能够得到基类graphics 的对象数组。* w0 d' G- j2 R. v1 _
>> hold all;[plot([1 2 3 4 5]),scatter([1 2 3 4 5],[2 3 4 5 6])]
  s/ P( q- p. P# F. b# R: o; Q) Z& Jans =5 T  X0 u6 H2 J8 g& h4 y& W
  1×2 graphics 数组:+ y0 U( [  w0 N
    Line       Scatter! X' h6 w% R+ `6 v  b2 J; @
请问能否实现与此类似的效果,把几个子类对象拼成一个基类类型的向量?需要如何修改?
% g$ |2 N8 Z- O- n! H6 E  ^
  • TA的每日心情
    开心
    2019-11-20 15:05
  • 签到天数: 2 天

    [LV.1]初来乍到

    2#
    发表于 2020-4-14 17:57 | 只看该作者
    5 v" _+ a2 p8 ?; x* A% F9 o
    试试把第一行 classdef (Abstract) baseclass < handle 改为
    $ e. B+ g! y1 k* D+ [0 Tclassdef (Abstract) baseclass < handle&matlab.mixin.Heterogeneous0 o6 r5 c. ]7 ]& b! l; D

    5 O- K/ D0 O+ c" o4 z2 `即可正常工作。
    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    关闭

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

    EDA365公众号

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

    GMT+8, 2025-6-22 01:27 , Processed in 0.078125 second(s), 23 queries , Gzip On.

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

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

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