9:合成与继承

合成:在一个类中置入另一个类的句柄,该类是原始类的一种拓展。比如”汽车“类即是”轮胎“类的一种拓展。

继承:以extends作为标志,表示该类属于其父类的一个子类。比如”自行车轮“类即是”轮胎“类的一种子类。

具体在实际中的用法得看两个类之间的关系,是同一类,还是拓展类。

由于初学,对此点不是很清楚,以后有更深的理解的话会拓展。

时间: 2024-11-03 21:00:43

9:合成与继承的相关文章

到底选择合成还是继承

无论合成还是继承,都允许我们将子对象置于自己的新类中.大家或许会奇怪两者间的差异,以及到底该如何选择.   如果想利用新类内部一个现有类的特性,而不想使用它的接口,通常应选择合成.也就是说,我们可嵌入一个对象,使自己能用它实现新类的特性.但新类的用户会看到我们已定义的接口,而不是来自嵌入对象的接口.考虑到这种效果,我们需在新类里嵌入现有类的private 对象.有些时候,我们想让类用户直接访问新类的合成.也就是说,需要将成员对象的属性变为public.成员对象会将自身隐藏起来,所以这是一种安全的

继承与合成

在阅读本文之前,你只需要记住我这一句: 大部分使用继承的场合后可以用合成来取代,而多重继承则需要不惜一切地避免之. 首先我详细介绍一下继承的概念: ''' 什么是继承? 继承就是用来指明一个类的大部分或全部功能都是从一个父类中获得的. 比如class Foo(Bar):创建一个叫Foo的类,并让它继承Bar. 当你这样写的时候,Bar的实例所具有的功能都工作在Foo的实例上. 当你这么做的时候,父类和子类有三种交互方式: 1.子类上的动作完全等同于父类上的动作. 2.子类上的动作完全覆盖了父类上

【C++】浅谈三大特性之一继承(三)

四,派生类的六个默认成员函数 在继承关系里,如果我们没有显示的定义这六个成员函数,则编译系统会在适合场合为我们自动合成. 继承关系中构造函数和析构函数的调用顺序: class B { public: B() { cout<<"B()"<<endl; } ~B() { cout<<"~B()"<<endl; } }; class D:public B { public: D() { cout<<"D

OOP

OOP:面向对象的关键概念使过程与数据的连接. 改变了传统数据中数据和程序分隔的状态. 将程序和数据包装在一起叫做封装. 一个类的定义和初始值可以用来创建类的实例(对象). OOP提供了方法在其他对象顶层构造类:合成和继承. 合成允许现在有的对象作为建造其他对象的一个组件. 继承允许一个相似的或者相关的对象(派生对象)来源于另外一个对象(基对象). 派生类:单一继承和多重继承. 重载给操作符和函数分陪多重含义. 多态性是指同一个过程与不同对象共同工作的能力. (它允许不同但相关对象的创建过程在一

GOF设计模笔记式之结构模型

1 前言 上一篇我们研究了创建型模式,这一篇们开始研究结构模型,这里主要解决合成还是继承的问题.如何通过适当的方法给类解耦.这里是我们主要考虑的问题,这里6种设计模式的关系我就先不研究,了解每一种模式再说. 2 模式特点 这里主要介绍六中设计模式的特点与结构,记录下自己的想法. 2.1 ADAPTER(适配器) - 类对象结构型模式 2.1.1. 意图 将一个类的接口转换成客户希望的另外一个接口. A d a p t e r模式使得原本由于接口不兼容 而不能一起工作的那些类可以一起工作. 2.1

9.JAVA编程思想 多形性

欢迎转载,转载请标明出处:http://blog.csdn.net/notbaron/article/details/51040241 "对于面向对象的程序设计语言,多型性是第三种最基本的特征(前两种是数据抽象和继承." "多形性"(Polymorphism)从另一个角度将接口从具体的实施细节中分离出来,亦即实现了"是什么"与"怎样做"两个模块的分离.利用多形性的概念,代码的组织以及可读性均能获得改善.此外,还能创建"

8.JAVA编程思想类再生

欢迎转载,转载请标明出处:http://blog.csdn.net/notbaron/article/details/51040239 "Java 引人注目的一项特性是代码的重复使用或者再生.但最具革命意义的是,除代码的复制和修改以外,我们还能做多得多的其他事情." 在象C 那样的程序化语言里,代码的重复使用早已可行,但效果不是特别显著.与Java 的其他地方一样,这个方案解决的也是与类有关的问题.我们通过创建新类来重复使用代码,但却用不着重新创建,可以直接使用别人已建好并调试好的现成

61条面向对象设计的经验原则

你不必严格遵守这些原则,违背它们也不会被处以宗教刑罚.但你应当把这些原则看成警铃,若违背了其中的一条,那么警铃就会响起. -----Arthur J.Riel (1)所有数据都应该隐藏在所在的类的内部.p13 (2)类的使用者必须依赖类的共有接口,但类不能依赖它的使用者.p15 (3)尽量减少类的协议中的消息.p16 (4)实现所有类都理解的最基本公有接口[例如,拷贝操作(深拷贝和浅拷贝).相等性判断.正确输出内容.从ASCII描述解析等等]. p16 (5)不要把实现细节(例如放置共用代码的私

Java面试参考指南(一)

Java是一种基于面向对象概念的编程语言,使用高度抽象化来解决现实世界的问题.    面向对象的方法将现实世界中的对象进行概念化,以便于在应用之间进行重用.例如:椅子.风扇.狗和电脑等. Java里的类(Class)是一个蓝图.模板,或者称之为原型,它定义了同一类事物的相同属性和行为.实例(Instance)是某个类的一个具 体实现,同一个类所有的实例拥有相同的属性.举例来说,你可以定义一个类叫做“房子(House)”,这个类拥有一个属性叫做“房间数 (number of room)”,这样你就