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

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

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
请问有谁知道如何实现子类转基类?8 \7 g" f" a& i2 j# d
类的定义如下:
* Y3 P% ^/ F7 ]2 r" ~+ N$ m
  • <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 K9 K" i' s& Z- U$ i

- l$ }: S7 P. W3 `) q+ g9 c6 I. C0 m5 c. U
, Y$ w/ X# d1 \0 ^1 I
我试图把几个子类对象拼成一个基类类型的向量,不成功。* i; t; r4 J9 w& g
错误提示:' X) K- _( A; r
>> [derived1() derived2()]
  B: J+ W) L3 G) i, L错误使用 horzcat
1 |) K$ W( C5 N4 M从 derived2 转换为 derived1 时出现以下错误:
( n# s! n. v# @2 k输入参数太多。
' J. {% Z& o6 D# b# d
4 g9 M  a3 a; W- {- Y3 t; c>> baseclass(derived1())
* i8 p8 e+ v& c7 T6 d错误使用 baseclass8 Y1 Q7 a( b, L7 y
输入参数太多。2 [) d% ?- W! y/ T  |( {( @

/ A5 g$ c# N( m! Q3 H( _3 M
% ]3 e4 \( ^, p# Y2 [2 r3 C使用系统自带的line scatter等类去做相同操作是成功的,能够得到基类graphics 的对象数组。3 G! k- f  W: r% b' Z  P( Q7 B
>> hold all;[plot([1 2 3 4 5]),scatter([1 2 3 4 5],[2 3 4 5 6])]
. _& G; l6 S) q6 ~ans =
+ T* O# Q( k) U0 O1 O9 n  1×2 graphics 数组:* g' n3 [7 b6 X+ o% `: V2 x
    Line       Scatter6 f( P- M% e" l2 l" k: Z  s9 [7 P
请问能否实现与此类似的效果,把几个子类对象拼成一个基类类型的向量?需要如何修改?
$ K1 ~' Z6 O+ y
  • TA的每日心情
    开心
    2019-11-20 15:05
  • 签到天数: 2 天

    [LV.1]初来乍到

    2#
    发表于 2020-4-14 17:57 | 只看该作者

    & C" q4 t2 o5 j试试把第一行 classdef (Abstract) baseclass < handle 改为0 [/ ]# f2 d* N# ?, G
    classdef (Abstract) baseclass < handle&matlab.mixin.Heterogeneous
    4 m1 q/ ?- F" a* \* M6 j/ O8 ?0 k' R4 x* l2 S
    即可正常工作。
    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    关闭

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

    EDA365公众号

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

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

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

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

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