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

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

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
请问有谁知道如何实现子类转基类?: L( G. }/ k, G; [$ B$ r. C
类的定义如下:
2 Z+ S+ m- I+ o/ N- V
  • <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

  • 1 O4 ]$ h& Q( i; Q

# U) ^, b- K6 D& p3 e% y$ o
0 ]& U9 u# n* \; ?* S5 l- E3 m2 [+ k
1 G6 i6 M. g& m9 E我试图把几个子类对象拼成一个基类类型的向量,不成功。
8 H- N5 V& h% U7 u% D% ?$ s错误提示:
( D/ l, `" V* }  f, d# ?. J>> [derived1() derived2()]( H1 X0 t' ^7 }4 f& @$ U
错误使用 horzcat; O7 y' F# Y1 {8 |6 X7 [$ p% ]
从 derived2 转换为 derived1 时出现以下错误:
8 m0 \  b" d1 l/ H9 E+ ~+ K输入参数太多。
6 {0 W1 q7 q) p" c. _5 P5 o1 L6 s: K2 B% x2 z/ s- O
>> baseclass(derived1())
* `% b2 `' g9 y# n; T1 ]2 D* j! e错误使用 baseclass' ~4 l0 g) ~  z/ q3 T+ e6 g
输入参数太多。9 U& r  R7 U( H
$ X1 r+ ^/ i/ v8 k+ W7 @+ D' R

. M) \: k* C' f3 V" p, \$ f0 w使用系统自带的line scatter等类去做相同操作是成功的,能够得到基类graphics 的对象数组。: f  x  b& ~2 D3 [6 |
>> hold all;[plot([1 2 3 4 5]),scatter([1 2 3 4 5],[2 3 4 5 6])]
! g" P. b. V$ G6 tans =" E1 {) _* O2 {5 ~
  1×2 graphics 数组:1 v4 R- m' u4 a& l4 d1 ~
    Line       Scatter
9 Y" v, z" S" c! v+ w请问能否实现与此类似的效果,把几个子类对象拼成一个基类类型的向量?需要如何修改?. {  F) z& H) j* R: K
  • TA的每日心情
    开心
    2019-11-20 15:05
  • 签到天数: 2 天

    [LV.1]初来乍到

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

    ' z0 p+ ?2 H0 i  S' q2 y试试把第一行 classdef (Abstract) baseclass < handle 改为
    " @8 [. v, A6 u- Zclassdef (Abstract) baseclass < handle&matlab.mixin.Heterogeneous
    ; ~) C: W0 k" W2 M. W; K* |3 u/ W8 L: a" l; x2 p8 M4 o; F
    即可正常工作。
    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    关闭

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

    EDA365公众号

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

    GMT+8, 2025-8-15 06:46 , Processed in 0.109375 second(s), 23 queries , Gzip On.

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

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

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