Hauptinhalt

Aufrufen von Superklassen-Methoden bei Unterklassen-Objekten

R2026b

Superklassen-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.

Siehe auch

Themen