이 페이지의 최신 내용은 아직 번역되지 않았습니다. 최신 내용은 영문으로 볼 수 있습니다.

meta.abstractDetails

패키지: meta

추상(Abstract) 메서드와 속성 찾기

구문

meta.abstractDetails(ClassName)
meta.abstractDetails(mc)
absMembers = meta.abstractDetails(___)

설명

meta.abstractDetails(ClassName)은 이름이 ClassName인 클래스의 추상 메서드와 속성의 목록을 표시합니다. 패키지의 클래스에 대한 이름은 지정된 전체 이름을 사용해야 합니다. MATLAB®Hidden으로 선언된 것을 포함하여 퍼블릭 추상 메서드와 속성, 그리고 보호 추상 메서드와 속성을 모두 표시합니다.

meta.abstractDetails(mc)는 이름이 meta.class 객체 mc로 표현되는 클래스의 추상 메서드와 속성의 목록을 표시합니다.

absMembers = meta.abstractDetails(___)는 클래스의 추상 멤버에 대응하는 메타클래스 객체로 구성된 배열을 반환하며, 위에 열거된 구문의 입력 인수를 포함할 수 있습니다. 클래스에 추상 메서드와 추상 속성이 모두 있는 경우, absMembersmeta.method 객체와 meta.property 객체가 포함된 meta.MetaData 클래스로 구성된 이종 배열입니다.

클래스는 Abstract 클래스 특성을 선언하는 경우 추상 메서드나 추상 속성을 정의하지 않고도 추상일 수 있습니다. 이 경우 meta.abstractDetails는 해당 클래스의 추상 멤버를 반환하지 않지만 클래스는 추상입니다. 자세한 내용은 클래스가 추상 클래스인지 여부 확인하기 항목을 참조하십시오.

입력 인수

ClassName

클래스의 이름으로, 문자형 벡터 또는 string형 스칼라로 지정됩니다.

mc

클래스를 나타내는 meta.class 객체(예: ?MyClass)

출력 인수

absMembers

추상 클래스 멤버를 나타내는 meta.class 객체로 구성된 배열

예제

모두 축소

추상 속성을 사용하여 AbsBase 클래스를 정의합니다.

classdef AbsBase
   properties (Abstract)
      Prop1
   end
   methods(Abstract)
      result = methodOne(obj)
      output = methodTwo(obj)
   end
end

다음과 같이 클래스 이름(AbsBase)을 char형 벡터로 전달합니다.

meta.abstractDetails('AbsBase')

meta.abstractDetailsAbsBase 클래스에 정의된 추상 속성과 추상 메서드의 이름을 표시합니다.

Abstract methods for class AbsBase:
    methodTwo   % defined in AbsBase
    methodOne   % defined in AbsBase

Abstract properties for class AbsBase:
    Prop1   % defined in AbsBase

AbsBase 클래스를 나타내는 meta.class 객체를 전달하고 추상 멤버에 대한 메타클래스 객체를 반환합니다. 이전 예제의 AbsBase 클래스 정의를 사용합니다.

mc = ?AbsBase;
absMembers = meta.abstractDetails(mc);

absMembersProp1 추상 속성에 대한 meta.property 객체와, methodOne 추상 메서드와 methodTwo 추상 메서드에 대한 meta.method 객체를 포함하는 이종 배열입니다.

메타클래스 객체의 이름을 나열합니다.

for k = 1:length(absMembers)
   disp(absMembers(k).Name)
end
methodTwo
methodOne
Prop1

이전 예제에서 정의된 AbsBase에서 SubAbsBase 클래스를 파생시킵니다.

classdef SubAbsBase < AbsBase
   properties 
      SubProp = 1;
   end
   methods
      function result = methodOne(obj)
         result = obj.SubProp + 1;
      end
   end
end

SubAbsBase에서 상속한 추상 멤버의 이름을 표시합니다.

meta.abstractDetails('SubAbsBase')

Abstract methods for class SubAbsBase:
    methodTwo   % defined in AbsBase

Abstract properties for class SubAbsBase:
    Prop1   % defined in AbsBase

SubAbsBase를 구체 클래스(Concrete Class)로 만들려면 methodTwoProp1을 구체 서브클래스로 구현해야 합니다.