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

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

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
请问有谁知道如何实现子类转基类?' [% @* z+ E+ }
类的定义如下:' |6 J6 M- c' k, H
  • <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 o/ @5 d5 Y8 E+ M* {# G

6 c6 o  I! e5 a& P4 q- @" `3 ^# T1 u9 h, e7 q
% Q1 v# U/ N" S; `! J+ K
我试图把几个子类对象拼成一个基类类型的向量,不成功。  {+ C( y, V' Q% E
错误提示:
. v0 s: u( {8 s3 C" d>> [derived1() derived2()]
6 y! l+ _0 R6 B+ }) x错误使用 horzcat* R* `% }: Y* f
从 derived2 转换为 derived1 时出现以下错误:/ }5 ?; j* E& |6 l1 ?( x6 @$ M4 v' G
输入参数太多。+ m  P6 p% g. }: H5 i/ S  J: x

( e4 ]5 c3 ?/ O9 j2 w6 ]$ y>> baseclass(derived1())
. p* E( U( p" Q% E错误使用 baseclass
. \0 d9 I( c0 }8 Z5 \: R& _, Z输入参数太多。6 m, O: A/ [5 k1 p0 F% ~$ o& x& K
0 A3 J) d. E/ g$ Y5 j2 g0 ~
4 i/ O1 }2 C1 E6 `+ J/ l
使用系统自带的line scatter等类去做相同操作是成功的,能够得到基类graphics 的对象数组。
& o8 d  i2 N+ R>> hold all;[plot([1 2 3 4 5]),scatter([1 2 3 4 5],[2 3 4 5 6])]
6 A6 E1 O$ v. Cans =. m7 L) j, g( W$ r* K; D$ N
  1×2 graphics 数组:
- r% K* F8 P( a3 ?5 y: i# W' M    Line       Scatter
3 @9 c; ^' A8 a+ U0 \请问能否实现与此类似的效果,把几个子类对象拼成一个基类类型的向量?需要如何修改?
5 V/ h( [; a) O# w
  • TA的每日心情
    开心
    2019-11-20 15:05
  • 签到天数: 2 天

    [LV.1]初来乍到

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

    & ~- }( q3 y% m; D9 ]8 t% Y试试把第一行 classdef (Abstract) baseclass < handle 改为. N0 [+ ~/ s; Z$ K; i
    classdef (Abstract) baseclass < handle&matlab.mixin.Heterogeneous2 r" c1 c( t4 _

    : O  Q! R, M) y; M- U1 ]即可正常工作。
    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    关闭

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

    EDA365公众号

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

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

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

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

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