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

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

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
请问有谁知道如何实现子类转基类?' s2 m3 `4 l/ i2 T6 i
类的定义如下:
% q  d8 M' ?1 ?" b% V8 ~9 X
  • <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
  • 7 D+ e" V7 R% }# _+ Y' F
6 a- o1 R( W+ V& ?1 h/ C& ?' [
6 j) O+ y# ?% q2 X# X

$ [0 C( @5 z* A/ q5 _8 ~* I我试图把几个子类对象拼成一个基类类型的向量,不成功。5 ]4 w; l3 [2 M/ T+ T8 ~
错误提示:4 K7 j4 H, I$ d& @$ j
>> [derived1() derived2()]
, v4 k9 C8 U( D9 b错误使用 horzcat
/ N' S. o" B0 Z从 derived2 转换为 derived1 时出现以下错误:" e: ]4 X0 I- e
输入参数太多。+ ^7 g- G' \2 k% c

1 ^; j5 u6 g9 ^5 x* F>> baseclass(derived1())
1 }/ s, ~' c& x9 ~4 D错误使用 baseclass
- G! q( N* q+ n& L输入参数太多。  k/ r( t; t3 X/ w

/ q5 e- L9 t* |8 o
. F. Y( L& u1 v" h0 Q) Q使用系统自带的line scatter等类去做相同操作是成功的,能够得到基类graphics 的对象数组。
/ X- c( }" z5 S5 i# k/ p. S>> hold all;[plot([1 2 3 4 5]),scatter([1 2 3 4 5],[2 3 4 5 6])]6 Z7 X, A8 z8 G
ans =3 M5 ~- W) C, t! E* D
  1×2 graphics 数组:
# C7 M: Y' q  R3 m' w% C1 `    Line       Scatter. J% Y3 ]# r8 d$ z$ _# ~1 q
请问能否实现与此类似的效果,把几个子类对象拼成一个基类类型的向量?需要如何修改?
% z8 n4 i7 T; j. O4 J5 k
  • TA的每日心情
    开心
    2019-11-20 15:05
  • 签到天数: 2 天

    [LV.1]初来乍到

    2#
    发表于 2020-4-14 17:57 | 只看该作者
    . V& |7 F, Q1 E2 O" m
    试试把第一行 classdef (Abstract) baseclass < handle 改为
    & k$ K  {! _& r0 f. Gclassdef (Abstract) baseclass < handle&matlab.mixin.Heterogeneous. U' v. Q' V8 p  E  C2 J: _8 e) U9 N

    # Q: ]  O7 y  N6 B/ z即可正常工作。
    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    关闭

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

    EDA365公众号

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

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

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

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

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