MATLAB®当多个类具有相同的方法时,使用类优先级来确定调用哪个方法。您可以使用类指定用户定义类的相对优先级InferiorClasses
属性。
本主题中的材料建立在对以下信息的理解之上:
当多个类定义了具有相同名称的方法或类重载函数时,MATLAB会根据主要参数确定调用哪个方法或函数。以下是MATLAB如何确定主导论点:
根据论点的类别确定主要论点。
如果有一个主导参数,调用主导类的方法。
如果参数具有相同的优先级,则使用最左边的参数作为主导参数。
如果主参数的类没有定义一个带有被调用函数名称的方法,则使用该名称调用路径上的第一个函数。
使用类指定用户定义类的相对优先级InferiorClasses
属性。要指定低于正在定义的类的类,请指定类的单元格数组meta.class
对象的属性。
例如,下面classdef
宣称MyClass
是占主导地位的ClassName1和ClassName2.
classdef(InferiorClasses = {?ClassName1,?ClassName2}) MyClass……结束
的?
操作符与类名组合创建meta.class
对象。看到元类
.
下面的MATLAB类总是不如使用classdef
语法,不能在此列表中使用。
双
,单
,int64
,uint64
,int32
,uint32
,int16
,uint16
,int8
,uint8
,字符
,字符串
,逻辑
,细胞
,结构体
,function_handle
.
当计算包含多个类对象的表达式时,MATLAB使用类优势。统治阶级决定:
当多个类定义具有相同名称的方法时,调用哪个类方法。
由不同类的对象组合而成的数组类,假设MATLAB可以将次等对象转换为主导类。
子类不继承超类InferiorClasses
属性。仅在子类中指定的类InferiorClasses
属性不如子类对象。