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

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

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
请问有谁知道如何实现子类转基类?
' a1 V3 W6 `; y5 L类的定义如下:9 c( t1 h& L9 V$ T% x3 Y8 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
  • . ]( Z  U4 G: P4 X

5 C5 I# g8 X) `5 U( {
' H9 k# M4 a  `9 p; |! ^8 S6 l
我试图把几个子类对象拼成一个基类类型的向量,不成功。
5 Q# s( o+ ?; K. {错误提示:  x% h: `9 k, L
>> [derived1() derived2()]! D. L- g6 n, g) y: @
错误使用 horzcat
7 U2 ?$ D* V4 Y- K" ~- @8 e从 derived2 转换为 derived1 时出现以下错误:
! y9 D9 B" Q3 A' J输入参数太多。
" T$ T8 u) C7 v1 [5 d! Z/ p3 }+ C* l2 f
>> baseclass(derived1())
9 I: W( X- D% M7 W7 s/ X/ l2 T7 E错误使用 baseclass$ w  l0 I" b& P( _! A
输入参数太多。$ E$ h$ d6 {, H* Z, h" T! w

( j3 E. e+ A# P
, U8 L5 a; H" p使用系统自带的line scatter等类去做相同操作是成功的,能够得到基类graphics 的对象数组。% [- K) q9 O7 |; O3 |6 y- f" Y2 c
>> hold all;[plot([1 2 3 4 5]),scatter([1 2 3 4 5],[2 3 4 5 6])]
$ W, ?& _* Y' }ans =! r8 x, F- Q; P% m7 s6 h
  1×2 graphics 数组:* q& U7 q7 v4 l3 J
    Line       Scatter' _8 c5 k8 b1 p0 a/ b
请问能否实现与此类似的效果,把几个子类对象拼成一个基类类型的向量?需要如何修改?/ }- x6 q4 i8 n# v
  • TA的每日心情
    开心
    2019-11-20 15:05
  • 签到天数: 2 天

    [LV.1]初来乍到

    2#
    发表于 2020-4-14 17:57 | 只看该作者
    9 Z- x7 v" E# m
    试试把第一行 classdef (Abstract) baseclass < handle 改为
    - G! [8 e% S1 v. {- _8 aclassdef (Abstract) baseclass < handle&matlab.mixin.Heterogeneous
    ! T/ b" L) @2 Q2 e' Y# i
    6 J1 y. n6 r) r) K即可正常工作。
    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    关闭

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

    EDA365公众号

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

    GMT+8, 2025-11-4 06:13 , Processed in 0.125000 second(s), 23 queries , Gzip On.

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

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

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