对子类对象调用超类方法
超类与子类的关系
子类可以覆盖超类方法,从而支持由子类定义更大程度的特化。由于有子类对象本身是超类对象这种关系,在执行自定义子类代码之前调用方法的超类版本通常很有用。
如何调用超类方法
如果子类方法与超类方法同名,则子类方法可以调用超类方法。在子类中,用 @
符号引用方法名称和超类名。
以下是调用由 MySuperClass
定义的 superMethod
的语法:
superMethod@MySuperClass(obj,superMethodArguments)
例如,子类可以调用超类 disp
方法来实现对象的超类部分的显示。然后,子类添加代码来显示对象的子类部分:
classdef MySub < MySuperClass methods function disp(obj) disp@MySuperClass(obj) ... end end end
如何调用超类构造函数
如果您创建子类对象,MATLAB® 会调用超类构造函数来初始化子类对象的超类部分。默认情况下,MATLAB 不带参量调用超类构造函数。如果希望用特定参量调用超类构造函数,请从子类构造函数显式调用超类构造函数。在对该对象进行任何其他引用之前,必须先调用超类构造函数。
调用超类构造函数的语法使用 @
符号:
obj = obj@MySuperClass(SuperClassArguments)
在此类中,MySub
对象由 MySuperClass
构造函数初始化。超类构造函数使用指定的参量构造对象的 MySuperClass
部分。
classdef MySub < MySuperClass methods function obj = MySub(arg1,arg2,...) obj = obj@MySuperClass(SuperClassArguments); ... end end end
有关详细信息,请参阅子类构造函数。