Main Content

서브클래스 객체에서 슈퍼클래스 메서드 호출하기

서브클래스와 슈퍼클래스의 관계

서브클래스는 서브클래스에서 정의되는 더욱 광범위한 특화를 지원하기 위해 슈퍼클래스 메서드를 오버라이드할 수 있습니다. 서브클래스 객체가 슈퍼클래스 객체인 관계로 인해 특화된 서브클래스 코드를 실행하기 전에 슈퍼클래스의 메서드를 호출하면 유용한 경우가 많이 있습니다.

슈퍼클래스 메서드를 호출하는 방법

서브클래스 메서드와 슈퍼클래스 메서드의 이름이 동일한 경우 서브클래스 메서드는 슈퍼클래스 메서드를 호출할 수 있습니다. 서브클래스에서 @ 기호를 사용하여 메서드 이름과 슈퍼클래스 이름을 참조하면 됩니다.

다음은 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 

자세한 내용은 서브클래스 생성자 항목을 참조하십시오.

관련 항목