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

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

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
请问有谁知道如何实现子类转基类?2 _4 J* \) t3 R' E7 h) W
类的定义如下:3 d) U( O  }0 W6 z2 O8 b9 a
  • <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

  • . B5 Z0 ^( o4 n0 g5 w
. S) v/ Z! I% N7 z2 {7 `3 w* N' z: s
6 I% w7 {  u# o' x7 Z

2 A' f* K3 S$ n. W. T我试图把几个子类对象拼成一个基类类型的向量,不成功。) M& C7 |6 P/ I# G1 u' U# d' l! O
错误提示:
7 H& V9 E2 d6 X* n8 z>> [derived1() derived2()]
/ U' \, |" ]; `; B+ h; A错误使用 horzcat6 _% p/ p/ L5 N9 A; Q/ F
从 derived2 转换为 derived1 时出现以下错误:
" G- Z  H- f: J0 \输入参数太多。
( n7 o) Y" Y( S8 J, B
/ }6 p: n7 X9 f* Q2 b>> baseclass(derived1())
; b1 @$ K8 k/ [) N/ ~错误使用 baseclass/ {1 \5 d0 |: D) w& z  I  J( L# w
输入参数太多。
4 z% B8 n1 j/ L$ }8 ~. r6 b5 ~7 Z$ [$ u, f* h8 x3 O+ P0 n, w1 V

9 }  \7 z7 i: F% A2 b8 t使用系统自带的line scatter等类去做相同操作是成功的,能够得到基类graphics 的对象数组。
9 \- Q1 c( D% Q- Y" I>> hold all;[plot([1 2 3 4 5]),scatter([1 2 3 4 5],[2 3 4 5 6])], b+ d3 e4 c9 F1 B* l" e
ans =
3 O1 O+ s' p8 P  1×2 graphics 数组:
2 S/ R7 }- ^7 H8 T+ ]/ A0 N1 {    Line       Scatter
( G: o! r9 ^3 t& w请问能否实现与此类似的效果,把几个子类对象拼成一个基类类型的向量?需要如何修改?7 v- _; F: d9 A3 ^! ]9 F) K  H
  • TA的每日心情
    开心
    2019-11-20 15:05
  • 签到天数: 2 天

    [LV.1]初来乍到

    2#
    发表于 2020-4-14 17:57 | 只看该作者
    . B8 T$ r2 b! S5 I3 o& C! {+ }
    试试把第一行 classdef (Abstract) baseclass < handle 改为$ K5 c7 [5 N, f/ I/ n
    classdef (Abstract) baseclass < handle&matlab.mixin.Heterogeneous1 g# y& C# q, _8 [% o, \3 r( u
    & `- u2 {& N# `  y' U
    即可正常工作。
    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    关闭

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

    EDA365公众号

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

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

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

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

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