我需要知道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 . 有办法做到这一点吗?
1 回答
你应该能够做到:
在这里,您使用抽象方法
foo
将A
标记为Abstract
. 所以AA
和B
都必须实现foo
. 您还将A
标记为HandleCompatible
,这意味着子类可以是句柄 .然后
AA
继承自A
和handle
,但B
仅从A
继承并且是值类 . 两者都实现foo
.请注意,您可能需要注意在每个类中实现foo的方式,因为必需的函数签名可以在句柄类和值类之间变化 .