将类组织到层次结构方面有助于重用代码和重用解决方案来设计已解决的问题。金宝搏官方网站您可以将类层次结构视为集合 - 超集(称为超类或基类),以及子集(称为亚级或派生类)。例如,下图显示了如何使用类代表员工数据库。
层次结构的根是员工
班级。它包含适用于所有员工集的数据和操作。包含在一组员工中的子集,其成员在仍然员工的同时,也是更具体地定义员工类型的集合的成员。子类喜欢测试工程师
是这些子集的例子。
课程是真实世界概念或事物的表示。在设计类时,形成类所代表的抽象。考虑员工的抽象,以及员工的意图使用班级的重要方面。姓名,地址和部门可以成为所有员工的共同点。
在设计类时,您的抽象仅包含必要的元素。例如,员工的毛发颜色和鞋尺寸肯定是员工的特征,但可能与这个员工课程的设计无关。他们的销售区域仅对某些员工有关,因此这种特性属于子类。
当您设计类系统时,将普通数据和功能放在超类中,然后您将使用它来派生子类。子类继承了超类的数据和功能,并仅定义了对其特定目的具有唯一的方面。这种方法提供了优势:
避免重复所有类通用的代码。
在不修改超类或影响其他子类的情况下,随时添加或更改子类。
如果超类更改(例如,所有员工分配了一个数字),则子类自动获取这些更改。
子类对象的行为类似于超类的对象,因为它们是超类的特化。这一事实有助于开发行为相似但实现方式不同的相关类。
您通常可以描述子类的对象与其超类的对象之间的关系,其中包含:
子类是一个超类。例如:工程师是雇员。
这种关系意味着属于子类的对象具有与超类的相同属性,方法和事件。子类对象还具有由子类定义的任何新功能。与...测试这种关系isa.
功能。
您可以将子类对象传递给超类方法,但您只能访问超类定义的这些属性。此行为使您可以在不影响超类的情况下修改子类。
关于超类和子类行为,需要记住两点:
超类中定义的方法可以在子类对象上运行。
子类中定义的方法无法在超类对象上运行。
因此,你可以治疗工程师
像其他物体一样员工
对象,但是员工
对象不能传递为工程师
对象
MATLAB®根据对象最特定的类确定对象的类。因此工程师
对象是班
工程师
,同时它也是一个员工
对象,用作isa.
功能显示。
通常,MATLAB不允许您创建包含超类和子类对象混合的阵列,因为数组可以只有一个类。如果您尝试连接不同类的对象,MATLAB会查找由较少的主导类定义的转换方法
看串联不同类的对象了解更多信息。
看matlab.mixin.heterogeneous
有关定义异构类层次结构的信息。
看对象转换器有关定义转换器方法的信息。
MATLAB类既支持从超类继承金宝app实现的方法,也支持继承由超类中的抽象方法定义的接口。
实现继承使子类可以重用代码。例如,一个受雇者
班级可以有一个submitstatus.
所有方法受雇者
子类可以使用。子类可以扩展继承的方法以提供专门的功能,同时重用公共方面。请参阅修改继承的方法有关此过程的更多信息。
interface继承在这些情况下很有用:
您需要一组类来提供公共接口。
子类创建了方法和属性的专用实现。
使用抽象类作为超类创建接口。此类定义了在子类中必须实现的方法和属性,但不提供实现。
子类必须提供自己的超类抽象成员的实现。要创建接口,将方法和属性定义为摘要使用它们摘要
属性。看抽象班级和班级成员有关更多信息和一个例子。