Main Content

상속된 속성 수정하기

슈퍼클래스 속성 수정

다음과 같은 두 개별 조건에서 슈퍼클래스 속성을 재정의할 수 있습니다.

  • 슈퍼클래스 속성 Abstract 특성의 값이 true인 경우

  • 슈퍼클래스 속성 SetAccess 특성 및 GetAccess 특성의 값이 private인 경우

슈퍼클래스가 속성을 추상으로 정의하는 경우 서브클래스는 이 속성의 구체적인 버전을 구현해야 합니다. 그러지 않으면 서브클래스도 추상입니다. 슈퍼클래스는 서브클래스 간에 일관된 인터페이스를 만들도록 추상 속성을 정의합니다.

슈퍼클래스가 프라이빗 액세스를 갖는 속성을 정의하는 경우 슈퍼클래스만 이 속성에 액세스할 수 있습니다. 서브클래스는 동일한 이름으로 다른 속성을 구현할 수 있습니다.

프라이빗 로컬 속성이 메서드에서 우선함

슈퍼클래스와 서브클래스가 동일한 이름의 속성을 정의하는 경우 이 속성을 참조하는 메서드는 해당 메서드를 정의한 클래스의 속성에 액세스합니다.

예를 들어, 서브클래스 속성이 슈퍼클래스 프라이빗 속성과 이름이 같고 슈퍼클래스의 메서드가 이 속성 이름을 참조하는 경우 MATLAB®은 슈퍼클래스가 정의한 속성에 액세스합니다.

Super 클래스 및 Sub 클래스가 있다고 가정하겠습니다.

classdef Super
   properties (Access = private)
      Prop = 2
   end
   methods
      function p = superMethod(obj)
         p = obj.Prop;
      end
   end
end
classdef Sub < Super
   properties
      Prop = 1
   end
end

Sub 클래스의 인스턴스를 만들고 이를 사용하여 슈퍼클래스 메서드를 호출하면 MATLAB은 슈퍼클래스의 프라이빗 속성에 액세스합니다.

subObj = Sub
subObj = 

  Sub with properties:

    Prop: 1
subObj.superMethod
ans =

     2

관련 항목