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

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

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
请问有谁知道如何实现子类转基类?$ C3 X1 [3 |) O! y! g# z
类的定义如下:9 M6 m4 {1 A* ^6 s
  • <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
  • 3 e1 J5 w& y" m+ R4 ~! r4 K: g4 o( W

) A9 a; E3 S( c$ f0 e: j9 e
' M& C8 K9 y; l, E$ k: i3 D2 E) L( o* `1 n5 @" v
我试图把几个子类对象拼成一个基类类型的向量,不成功。
; I# u$ }; ^5 r  s# a) ?  E& F) v错误提示:
6 y7 i) _5 r0 e3 K9 N4 h>> [derived1() derived2()]
5 W! F3 }* j( w3 L5 c6 z错误使用 horzcat$ s8 f4 Z6 `# W% W8 O9 ?8 N
从 derived2 转换为 derived1 时出现以下错误:
" V8 o# \6 g/ x- v0 v) P7 d( @% ^输入参数太多。) @$ D# r& o4 p- d; q; a

; A6 }& Q! u9 g& M8 x, i>> baseclass(derived1())1 j7 H8 h; r! _; O6 X
错误使用 baseclass
: L0 i! `( x; B* i4 `2 }输入参数太多。
. ~$ v$ a0 @1 H# L4 `* c, w4 @
6 v& ~# @) e( S. l, }; J: _* D' E- r+ z( d! J) S
使用系统自带的line scatter等类去做相同操作是成功的,能够得到基类graphics 的对象数组。
0 R5 B0 o7 V) s; a8 D4 n>> hold all;[plot([1 2 3 4 5]),scatter([1 2 3 4 5],[2 3 4 5 6])]/ _1 g7 Y8 l4 R- e; A7 @% b% G
ans =" A( |! O1 F( b0 n
  1×2 graphics 数组:  r' l& c& `$ B8 p
    Line       Scatter3 l- E0 ^! T' D# r6 H0 y
请问能否实现与此类似的效果,把几个子类对象拼成一个基类类型的向量?需要如何修改?
0 |$ x0 }- M3 h' B% \* q
  • TA的每日心情
    开心
    2019-11-20 15:05
  • 签到天数: 2 天

    [LV.1]初来乍到

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

    9 v6 V9 P# \) b) {0 D& I' b6 _试试把第一行 classdef (Abstract) baseclass < handle 改为( T7 P$ [5 O, `! f7 m) {' Y7 ?
    classdef (Abstract) baseclass < handle&matlab.mixin.Heterogeneous
    # P& ~4 e5 P% n! [9 p. e* w; l# \8 X: T
    即可正常工作。
    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    关闭

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

    EDA365公众号

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

    GMT+8, 2025-7-22 05:08 , Processed in 0.109375 second(s), 23 queries , Gzip On.

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

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

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