matlab - 句柄和非句柄子类的抽象超类
问题描述
我需要知道matlab中是否有办法为句柄和非句柄子类定义接口超类?如果在层次结构中有一个句柄类,则所有类也必须是句柄,并且在 matlab 中,接口被定义为抽象类。所以不能以这种方式进行。
class A < handle
....
end
class AA < A
....
methods
function foo
end
end
end
class B
....
methods
function foo
end
end
我想创建某种具有 AA(句柄)和 B(非句柄)类的容器,以确保它们都具有函数 foo。有没有办法做到这一点?
解决方案
你应该能够做到:
classdef (Abstract, HandleCompatible) A
methods (Abstract)
function foo
end
end
classdef AA < A & handle
methods
function foo
...
end
end
end
classdef B < A
methods
function foo
...
end
end
end
在这里,您使用抽象方法标记A
为。因此,必须同时实施。您还标记为,这意味着子类可以是句柄。Abstract
foo
AA
B
foo
A
HandleCompatible
然后AA
继承自两者A
and handle
,但B
仅继承自A
and 是一个值类。两者都实施foo
。
请注意,您可能需要注意在每个类中实现 foo 的方式,因为必要的函数签名在句柄和值类之间可能会有所不同。
推荐阅读
- java - 请帮我理解二维数组翻转
- google-chrome - 带有脚本执行的 chrome.tabs.onUpdated 侦听器在首次加载后工作异常
- python-3.x - 数据帧错误:UndefinedVariableError:名称未定义
- javascript - 从包含数组属性的基础对象有选择地创建一个新的对象数组
- firebase - Sec-Fetch-Mode 代替 Preflight
- amazon-web-services - 如何为 AWS Step Functions 进行蓝绿部署
- php - 在html中显示每行的具体列
- vue.js - 是否可以将“未知自定义元素”警告变成编译错误?
- javascript - 如何删除 JavaScript RowDataPacket 数组中的重复数据
- mysql - SQL:一对多关系——只返回所需的值