Aufrufen von Superklassen-Methoden bei Unterklassen-Objekten
R2026bSuperklassen-Beziehung zur Unterklasse
Unterklassen können Superklassen-Methoden übersteuern, um die von der Unterklasse definierte höhere Spezialisierung zu unterstützen. Aufgrund der Beziehung, dass ein Unterklassen-Objekt ein Superklassen-Objekt ist, ist es oft hilfreich, die Superklassen-Version der Methode aufzurufen, bevor der spezialisierte Unterklassen-Code ausgeführt wird.
Aufrufen von Superklassen-Methoden
Unterklassen-Methoden können Superklassen-Methoden aufrufen, wenn beide Methoden denselben Namen aufweisen. Verweisen Sie aus der Unterklasse mit dem Symbol @ auf den Methodennamen und den Namen der Superklasse.
Folgende Syntax ruft eine von MySuperClass definierte superMethod auf:
superMethod@MySuperClass(obj,superMethodArguments)
Eine Unterklasse kann beispielsweise eine disp-Methode der Superklasse aufrufen, um die Anzeige der Superklassen-Teils des Objekts zu implementieren. Daraufhin fügt die Unterklasse Code hinzu, um den Unterklassen-Teil des Objekts anzuzeigen:
classdef MySub < MySuperClass methods function disp(obj) disp@MySuperClass(obj) ... end end end
Aufrufen eines Superklassen-Konstruktors
Wenn Sie ein Unterklassen-Objekt erstellen, ruft MATLAB® den Superklassen-Konstruktor auf, um den Superklassen-Teil des Unterklassen-Objekts zu initialisieren. Standardmäßig ruft MATLAB den Superklassen-Konstruktor ohne Argumente auf. Wenn der Superklassen-Konstruktor mit bestimmten Argumenten aufgerufen werden soll, rufen Sie den Superklassen-Konstruktor explizit über den Unterklassen-Konstruktor auf. Der Aufruf des Superklassen-Konstruktors muss vor anderen Verweisen auf das Objekt erfolgen.
Die Syntax für den Aufruf des Superklassen-Konstruktors verwendet ein @-Symbol:
obj = obj@MySuperClass(SuperClassArguments)
In dieser Klasse wird das Objekt MySub vom Konstruktor MySuperClass initialisiert. Der Superklassen-Konstruktor konstruiert den MySuperClass-Teil des Objekts mithilfe der angegebenen Argumente.
classdef MySub < MySuperClass
methods
function obj = MySub(arg1,arg2,...)
obj = obj@MySuperClass(SuperClassArguments);
...
end
end
end Weitere Informationen dazu finden Sie unter Subclass Constructors.