我正在重写一个旧的MATLAB包。作为重写的一部分,我将使用class()
函数定义的两个类(称为old_class1
和old_class2
(更新为使用classdef定义的类。
old_class1
的定义包含行superiorto('old_class2')
。在用classdef定义的构造函数中不允许使用此函数,但我找不到任何等效函数。如何在用classdef定义的类中创建等效于superiorto()
的功能?
superiorto
在MATLAB中不再可用,但我找到了一份旧文档的副本,该副本表明,当多个不同的类作为函数参数时,它用于确定调用哪个对象的方法。例如,给定obj1=class1()
和obj2=class2()
,其中class1
构造函数包含superiorto('class2')
,将导致function(obj1,obj2) to call
class1.function, rather than
class2.function `.
使用现代classdef
功能,可以通过设置InferiorClasses
属性来实现相同的功能:
classdef (InferiorClasses = {?class2}) class1