我们在MATLAB R2014b中有方法和属性的属性,我知道方法属性abstract的用途。abstract我们可以在该方法中调用函数并将其定义在类的超类中。abstract我感到困惑的是MATLAB 中属性的属性的用途。我们如何使用这个?
抽象属性(和抽象方法)的目的是允许创建接口:
接口类的基本思想是指定每个子类必须实现的属性和方法,而不定义实际的实现。
例如,您可以使用以下Car定义来定义摘要
classdef (Abstract) Car
properties(Abstract) % Initialization is not allowed
model
manufacturer
end
end
Run Code Online (Sandbox Code Playgroud)
抽象属性model和manufacturer无法初始化(这就像实例化抽象类一样),并且所有继承自的类都Car 必须指定其值以使子类具体化。如果属性不是抽象的,子类将简单地继承它们。使属性抽象形成一种契约,即“为了成为一辆可用(具体)的汽车,你必须有一个model并manufacturer定义”。
因此,在定义中
classdef FirstEveryManCar < Car
properties
model = 'T';
manufacturer = 'Ford';
end
end
Run Code Online (Sandbox Code Playgroud)
属性定义是强制性的,以便类不会自动抽象(如果您有很长的类层次结构,则可以这样做)。