Main Content

Llamar a los métodos de superclases en objetos de subclases

Relación de la superclase con la subclase

Las subclases pueden reemplazar métodos de superclases para ser compatibles con la mayor especialización definida por la subclase. A causa de la relación por la que un objeto de subclase es un objeto de superclase, a menudo es útil llamar a la versión de superclase del método antes de ejecutar el código de subclase especializado.

Cómo llamar a los métodos de superclases

Los métodos de subclases pueden llamar a métodos de superclases si ambos métodos tienen el mismo nombre. Desde la subclase, haga referencia al nombre del método y de la superclase con el símbolo @.

Esta es la sintaxis para llamar a un superMethod definido por MySuperClass:

superMethod@MySuperClass(obj,superMethodArguments)

Por ejemplo, una subclase puede llamar a un método de superclase disp para implementar la visualización de la parte de superclase del objeto. Después, la subclase añade código para mostrar la parte de subclase del objeto:

classdef MySub < MySuperClass 
   methods
      function disp(obj)
         disp@MySuperClass(obj)
            ...
      end 
   end 
end 

Cómo llamar al constructor de superclases

Si crea un objeto de subclase, MATLAB® llama al constructor de superclases para inicializar la parte de superclase del objeto de subclase. De forma predeterminada, MATLAB llama al constructor de superclases sin argumentos. Si desea llamar al constructor de superclases con argumentos específicos, llame explícitamente al constructor de superclases desde el constructor de subclases. La llamada al constructor de superclases debe realizarse antes de cualquier otra referencia al objeto.

La sintaxis para llamar al constructor de superclases utiliza un símbolo @:

obj = obj@MySuperClass(SuperClassArguments)

En esta clase, el objeto MySub es inicializado por el constructor MySuperClass. El constructor de superclases construye la parte MySuperClass del objeto con los argumentos especificados.

classdef MySub < MySuperClass
   methods
      function obj = MySub(arg1,arg2,...)
         obj = obj@MySuperClass(SuperClassArguments);
            ...
      end 
   end 
end 

Para obtener más información, consulte Subclass Constructors.

Temas relacionados