상속된 속성 수정하기
슈퍼클래스 속성 수정
다음과 같은 두 개별 조건에서 슈퍼클래스 속성을 재정의할 수 있습니다.
슈퍼클래스 속성
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