主要内容

处理兼容的类

基本知识

本节提供的材料建立在以下信息的基础上。

关键概念

Handle-compatible类-一个你可以在类层次结构中包含句柄类的类,即使这个类不是句柄类。

  • 所有句柄类都是句柄兼容的。

  • 句柄兼容类的所有超类也必须是句柄兼容的。

HandleCompatible-将非句柄类定义为句柄兼容的class属性。

何时使用句柄兼容类

通常,在推导MATLAB时®所有超类都是句柄类,否则它们都不是句柄类。然而,在某些情况下,类提供了一些句柄和非句柄子类都使用的实用工具。因为将句柄类和非句柄类组合在一起是不合法的,所以实用程序类的作者必须实现该实用程序的两个不同版本。

解决方案是使用与句柄兼容的类。句柄兼容类是在形成超类集时可以与句柄类一起使用的类类型。属性将非句柄兼容类指定为句柄兼容类HandleCompatible类属性。

classdef(HandleCompatible) MyClass...结束

处理兼容性规则

句柄兼容的类(即HandleCompatible属性设置为真正的)请遵守以下规则:

  • 句柄兼容类的所有超类也必须是句柄兼容的

  • 如果类显式地设置HandleCompatibility属性来,则任何类的超类都不能处理类。

  • 如果类没有显式地设置HandleCompatible属性,如果任何超类是句柄,那么所有超类都必须是句柄兼容的。

  • HandleCompatible属性不被继承。

未显式设置其的类HandleCompatible属性来真正的是:

  • 句柄类,如果它的任何超类是句柄类

  • 如果没有一个超类是句柄类,则为值类

识别处理对象

要确定一个对象是否为句柄对象,请使用isa功能:

isa (obj,“处理”

相关的话题