Main Content

本页的翻译已过时。点击此处可查看最新英文版本。

meta.abstractDetails

包: meta

查找抽象方法和属性

语法

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

说明

meta.abstractDetails(ClassName) 显示名称为 ClassName 的类的抽象方法和属性列表。请对包中的类使用完全指定的名称。MATLAB® 显示所有 public 和 protected 抽象方法与属性,包括声明为 Hidden 的方法和属性。

meta.abstractDetails(mc) 显示 meta.class 对象 mc 表示的类的抽象方法和属性列表。

absMembers = meta.abstractDetails(___) 返回与类的抽象成员对应的元类对象的数组,并且可以包含前面语法中的任何输入参数。如果类同时具有抽象方法和抽象属性,则 absMembers 是包含 meta.methodmeta.property 对象的类 meta.MetaData 的异构数组。

如果某个类声明 Abstract 类特性,则该类可以是抽象的,而不必定义任何抽象方法或属性。在这种情况下,meta.abstractDetails 不会返回该类的抽象成员,但该类是抽象的。有关详细信息,请参阅确定类是否为抽象类

输入参数

ClassName

类的名称,指定为字符向量或字符串标量。

mc

表示类的 meta.class 对象(例如 ?MyClass)。

输出参数

absMembers

表示抽象类成员的 meta.class 对象数组

示例

全部折叠

使用一个抽象属性定义类 AbsBase

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

char 向量的形式传递类名称 (AbsBase):

meta.abstractDetails('AbsBase')

meta.abstractDetails 显示类 AbsBase 中定义的抽象属性和方法的名称。

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);

absMembers 是一个异构数组,包含 Prop1 抽象属性的 meta.property 对象,以及包含 methodOnemethodTwo 抽象方法的 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 成为具体的类,您需要在子类中实现具体的 methodTwoProp1 版本。