MATLAB 中抽象属性的用途是什么?

use*_*243 5 oop matlab

我们在MATLAB R2014b中有方法和属性的属性,我知道方法属性abstract的用途。abstract我们可以在该方法中调用函数并将其定义在类的超类中。abstract我感到困惑的是MATLAB 中属性的属性的用途。我们如何使用这个?

Tro*_*kin 4

抽象属性(和抽象方法)的目的是允许创建接口

接口类的基本思想是指定每个子类必须实现的属性和方法,而不定义实际的实现。

例如,您可以使用以下Car定义来定义摘要

classdef (Abstract) Car
    properties(Abstract) % Initialization is not allowed
      model
      manufacturer
    end
end
Run Code Online (Sandbox Code Playgroud)

抽象属性modelmanufacturer无法初始化(这就像实例化抽象类一样),并且所有继承自的类都Car 必须指定其值以使子类具体化。如果属性不是抽象的,子类将简单地继承它们。使属性抽象形成一种契约,即“为了成为一辆可用(具体)的汽车,你必须有一个modelmanufacturer定义”。

因此,在定义中

classdef FirstEveryManCar < Car
    properties
      model = 'T';
      manufacturer = 'Ford';
    end
end
Run Code Online (Sandbox Code Playgroud)

属性定义是强制性的,以便类不会自动抽象(如果您有很长的类层次结构,则可以这样做)。