Main Content

本页翻译不是最新的。点击此处可查看最新英文版本。

meta.abstractDetails

查找抽象方法和属性

说明

示例

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

如果某个类声明 Abstract 类特性,则该类可以是抽象的,而不必定义任何抽象方法或属性。在这种情况下,meta.abstractDetails 不返回该类的抽象成员。

示例

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

示例

absMembers = meta.abstractDetails(___) 返回与类的抽象成员对应的元类对象的数组。此语法接受前面列出的任一输入参量。

当类同时具有抽象方法和抽象属性时,则 absMembers 是包含 meta.methodmeta.property 对象的类 meta.MetaData 的异构数组。

示例

全部折叠

用一个抽象属性和两个抽象方法定义类 AbsBase

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

对类名称调用 meta.abstractDetailsmeta.abstractDetails 显示在类中定义的抽象属性和方法的名称。

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 对象调用 meta.abstractDetailsmeta.abstractDetails 返回抽象成员的元类对象。使用显示抽象成员名称中的 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 继承的抽象成员的名称。由于 methodOneSubAbsBase 中作为具体方法被覆盖,因此抽象成员列表中不包括它。

meta.abstractDetails("SubAbsBase")
Abstract methods for class SubAbsBase:
    methodTwo   % defined in AbsBase

Abstract properties for class SubAbsBase:
    Prop1   % defined in AbsBase

输入参数

全部折叠

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

表示正在调查的类的 meta.class 对象。

输出参量

全部折叠

表示抽象属性和方法的元类对象的数组。当类同时具有抽象方法和抽象属性时,则 absMembers 是包含 meta.methodmeta.property 对象的类 meta.MetaData 的异构数组。

版本历史记录

在 R2012b 中推出