继承与集装箱船
继承和容器是OOP(面向对象编程实例:C++)中的两个重要概念。简单地说,Containership和继承都处理向类提供附加属性或行为的问题。继承是类通过扩展父类从父类继承属性和行为的能力。另一方面,集装箱船是一个类将不同类的对象作为成员数据包含的能力。
什么是继承?
如上所述,继承是一个类通过扩展父类从父类继承属性和行为的能力。继承本质上通过允许通过新定义的类扩展现有类的属性和行为来提供代码重用。如果类A扩展B,那么类B称为父类(或父类),类A称为子类(或派生类/子类)。在这个示例场景中,类A将继承超级类(B)的所有公共和受保护的属性和方法。子类可以选择性地重写(为方法提供新的或扩展的功能)从父类继承的行为。继承表示OOP中的“is-a”关系。这本质上意味着A也是B。换句话说,B可以是对某个真实世界实体进行一般描述的类,但A指定了某个专门化。在实际的编程问题中,可以扩展Person类来创建Employee类。这就是所谓的专业化。但您也可以先创建Employee类,然后再将其泛化为Person类(即泛化)。在本例中,雇员将拥有该人的所有属性和行为(即雇员也是人),并且可能还包含一些附加功能(因此,Person不是雇员)。
什么是集装箱船?
集装箱船是一个类将不同类的对象作为成员数据包含的能力。例如,类A可以包含一个B类的对象作为成员。在这里,B中定义的所有公共方法(或函数)都可以在类A中执行。类A成为容器,而类B成为包含类。集装箱船也被称为组成。在这个例子中,可以说A类是由B类组成的,在OOP中,集装箱船代表了一种“有—A”关系。需要注意的是,即使容器有权执行所包含类的所有公共方法,它也不能更改或提供其他功能。当涉及到实际编程问题时,类TextBox的对象可能包含在类Form中,因此可以说Form包含TextBox(或者,表单由TextBox组成)。
继承与集装箱船的区别