类的特性

类的特性如表2-1所示。定义特性,可以修改类的行为。特性的值在classdef块中进行定义。

code.matlab
classdef(Attribute1=value1, Attribute2=value2,...) ClassName
    ...
end

表2-1 类的特性

特性名称 描 述
Abstract logical(默认值为=false) 如果指定为true,该类为抽象类,无法实例化。
AllowedSubclasses meta.class对象或meta.class对象构成的单元数组 列出可以作为本类父类的类。指定子类为下面形式的meta.class对象: 单一的meta.class对象。 meta.class对象构成的单元数组。一个空的单元数组{},与Sealed类等同。
ConstructOnLoad logical(默认值为=false) 如果为true,MATLAB从MAT文件载入对象时调用类的构造函数。这样,实现构造函数,从而它在没有参数的情况下被调用时不会生成出错信息。
HandleCompatible 对于值类,logical(默认值为=false) 指定为true时,该类可以用作句柄类的父类。
Hidden logical(默认值为=false) 如果为true,该类不会出现在superclasses或help函数的输出中。
InferiorClasses meta.class对象或meta.class对象构成的单元数组 使用本特性建立类的优先关系。
Sealed logical(默认值为=false) 如果为true,该类不能被子类化。

类成员的特性在classdef, properties, methods和events定义块中指定。语法格式如下:

code.matlab
classdef(attribute-name=expression, ...) ClassName
	properties(attribute-name=expression, ...)
		...
	end
	methods(attribute-name=expression, ...)
		...
	end
	events(attribute-name=expression, ...)
		...
	end
end