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

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

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
请问有谁知道如何实现子类转基类?
1 P( l/ E; d- [类的定义如下:9 J6 [& D3 u3 b) F1 g6 P
  • <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

  • + y8 s: s$ }( z6 z5 U/ f
$ s% ]) m/ `7 O, ^- C; r& n8 G9 v

" G7 ]; y) v& b# O* ]# _" v% i5 _; T" W5 K% O1 v5 K  _
我试图把几个子类对象拼成一个基类类型的向量,不成功。& W1 k" E, a; {
错误提示:; B) ^2 t0 d( ?8 R8 z- q$ [
>> [derived1() derived2()]
/ L8 {4 O' C$ ?# s错误使用 horzcat/ ^- C! z; t; z5 A6 ^& O/ z8 g
从 derived2 转换为 derived1 时出现以下错误:
. z5 f; r' l) z/ K" {1 R+ b输入参数太多。' @9 i2 B! H$ a4 W

' x* X9 V% ~9 P. p8 _9 R>> baseclass(derived1())8 y/ [& G* Y8 p/ ]% e* H
错误使用 baseclass; Y. q5 V% H- E) y1 P
输入参数太多。4 S* ~- T  P9 E) a& Q( j

, y0 @3 h& Z9 ]7 P# c8 n) f; H, T9 `' X$ l! H: L. w
使用系统自带的line scatter等类去做相同操作是成功的,能够得到基类graphics 的对象数组。
! u+ g2 |- N( Z/ I7 [! o  Z>> hold all;[plot([1 2 3 4 5]),scatter([1 2 3 4 5],[2 3 4 5 6])]$ U+ g# k) J3 D6 ?% b# b+ V
ans =  }) o- `, r. e. w5 T# u" h9 B
  1×2 graphics 数组:6 k, V" j( c1 {
    Line       Scatter
8 s; e: B: M0 Z4 t  V请问能否实现与此类似的效果,把几个子类对象拼成一个基类类型的向量?需要如何修改?; U9 c/ [6 h7 t4 j1 Y
  • TA的每日心情
    开心
    2019-11-20 15:05
  • 签到天数: 2 天

    [LV.1]初来乍到

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

    5 R2 L9 A8 b+ U% D! i. q5 Q! @试试把第一行 classdef (Abstract) baseclass < handle 改为
      ^- u/ z& v9 {8 m9 j2 qclassdef (Abstract) baseclass < handle&matlab.mixin.Heterogeneous! s: A( i! j% M' R7 c

    9 g" @! t2 q; j5 g5 _即可正常工作。
    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    关闭

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

    EDA365公众号

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

    GMT+8, 2025-11-24 09:04 , Processed in 0.156250 second(s), 23 queries , Gzip On.

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

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

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