组合与继承

Java继承与组合 我们举例写的类是现实事物的抽象. 而我们真正开发所遇到的项目往往业务比较复杂, 可能会涉及到一系列复杂的概念, 都需要我们使用代码来表示, 所以真实项目中所写的类也会有很多. 类之间的关系也会更加复杂.即使如此, 我们并不希望类之间的继承层次太复杂. 一般我们不希望出现超过三层的继承关系. 如果继承层次太多, 就需要考虑对代码进行重构了.继承(inheritance)机制:面向对象程序设计使代码可以复用的最重要的手段,它允许程序员在保持原有类的特性的基础上进行扩展,增加新功能,这样产生新的类,称派生类。 阅读详情

有这样一个类:

class Eye
{
    public:
    void Look(void);
};

现在希望定义一个Head类,也想实现Look的功能,应该使用()方法,实现代码重用。 正确答案: B

A.继承
B.组合
C.模板
D.过滤

答案解析: 组合是在新类中以原有类的对象作为数据成员,继承是在不改变现有的类的基础上,采用现有类的形式并在其中添加新代码,组合一般用于在新类中使用现有类的功能而不是他的接口的情况,就是新类用户看到的只是为新类所定义的接口。而继承则是用于在新类需要向基类转化的情况(多态),这也是组合和继承使用的最清晰的判断方法。
结合本题分析,我们只需让眼睛作为头的一个成员即可,而让头去继承眼睛的特性是没有必要的。
因此这道题选择B

SOME/IP协议详解「2.1.2·Payload数据类型序列化」 SOME/IP协议详解「2.1.2·Payload数据类型序列化」 点击返回雪云飞星的SOME/IP协议详解「总目录」 SOME/IP协议详解「2.1.2·Payload数据类型序列化」1 大小端问题2 数据对齐填充问题3 都有哪些数据类型 之前简单的概括了一下序列化/反序列化,就是降维打击,从这一章开始到2.1所有章节结束,都在讲解这个降维打击的详细规则与原理 1 大小端问题 首先什么是大小端: 大端:高字节存放到内存的低地址 小端:高字节存放到内存的高地址 假如有一个数据是0x12345678 阅读详情

相关推荐

项目计划书、规划文档模板

项目计划书、规划文档模板 最近通过项目实践经历,整理出的一套项目计划书(仅供自己参考梳理思路使用) 有喜欢的文末加VX 辛苦码字如有转载请标明出处谢谢!——木研 更新的简版项目规划文档! 原版文件请+vx :baierfa ...

weixin_43194923的博客 990

软件开发练习题笔记!

1.有这样一个类: class Eye { public: void Look(void); }; 现在希望定义一个Head类,也想实现Look的功能,应该使用()方法,实现代码重用。 A 继承 B组合(√) 解析:①“优先使用对象组合,而不是继承”是面向对象设计的第二原则。 ②组合是在新类中以原有类的对象作为数据成员,继承是在不改变现有的类的基础上,采用现有类的形式并在其中添加新代码,组合一般用于在新类中使用现有类的功能而不是他的接口的情况,就是新类用户看到的只是为新类所定义的接口。而

Finegrill的博客 901

保姆级教程:用Vue3+Element Plus快速搭建Flowable流程定义管理后台界面

本文提供了一份详细的Vue3+Element Plus教程,指导开发者快速搭建Flowable流程定义管理后台界面。从项目初始化、核心页面设计到响应式数据处理,全面覆盖前端开发关键步骤,帮助提升企业级应用开发效率。

weixin_42662293的博客 480

大一C语言错题集

一、循环嵌套和习题课 1、关于“while(条件表达式)循环体”:条件表达式的执行次数总是比循环体的执行次数多一次 2、关于“do循环体while(条件表达式)”:条件表达式的执行次数与循环体的执行次数一样 3、在switch语句中,不一定适用break语句 4、算法设计中,可以把复杂任务分解成一些简单的子任务 5、在C语言中,程序的模块化是利用函数实现的 6、结构化程序的三种基本程序是循环结构、选择结构、顺序结构 7、只要适当地修改代码,就可以将do-while与while相互转换 8、三

applenotsweat的博客 1091

看不懂分子动力学模拟的结果?一文读懂RMSD曲线

随后,将每一帧结构与初始模板进行叠合,计算对应原子的平均偏移量,即RMSD。总之,掌握 RMSD 的解读方法,就等于抓住了评估分子动力学模拟成败与质量的“总开关”。①在模拟初始阶段,RMSD会从0迅速上升,这是蛋白质从静态晶体或模型结构释放到溶液环境中并逐渐适应的正常过程。②经过一段时间后,曲线不再系统性上升或下降,而是围绕一个平均值,小幅度地上下波动,形成一个稳定的“平台”。这种情况下,RMSD 在初始快速上升后,并未进入平台,而是持续甚至加速上升,始终未见收敛。🔍 如何解读不同趋势的RMSD曲线。

weixin_46587777的博客 4893

Xilinx Vitis arm-xilinx-eabi-gcc.exe: error: *.c: Invalid argument

This problem may be a bugof version 2021.1 only. Unfortunately, I'm just currently using this version. After Build Project: Find where this Makefile is through "make: Leaving directory" information. For me, it is located atZynq_CPU_wrapper_hw_platfo...

Ayka的博客 6662

C++小题(二)

/* void func() {   static int val;   … } */ /* 静态局部变量有以下特点: 该变量在全局数据区分配内存; 静态局部变量在程序执行到该对象的声明处时被首次初始化,即以后的函数调用不再进行初始化; 静态局部变量一般在声明处初始化,如果没有显式初始化,会被程序自动初始化为0; 它始终驻留在全局数据区,直到程序运行结束。但其作用域为局部作用域,当定义它的函数或语

不积跬步无以至千里 649

【GlobalMapper精品教程】027:路径剖面和和视线工具的使用

路径剖面视线工具允许您使用加载的高程数据集沿用户指定的路径获取垂直剖面。要定义生成3D路径剖面所遵循的路径,只需单击鼠标左键选择路径的点,然后石键单击以结束路径。出现一个带有剖面的对话框,允许您设置视线分析或优化端点。

智慧空间实验室 2050

继承与组合 C++(五)

转载:http://c.biancheng.net/cpp/biancheng/view/240.html  c语言中文网 http://www.jizhuomi.com/software/53.html 鸡啄米 http://blog.sina.com.cn/s/blog_7289aca90100q250.html 梦想成真VS环宇 1.继承 如果A是基类,B是A的派生类,那

xingyuan1hao的专栏 379

2026年美赛数学建模竞赛 MCM B题:使用太空电梯系统建立月球殖民地 问题一 月球殖民地材料运输的三种场景建模 详细解题思路和代码

如果运输系统不能完美工作(例如,系绳摆动、火箭失败、电梯故障等),你的解决方案在多大程度上会发生变化?技术可行性:三种方案在技术上都是可行的,但挑战不同 经济性:混合方案在长期视角下最具成本效益 时间效率:并行运输可以显著缩短总建设时间环境影响:太空电梯的环境优势明显,混合方案可平衡需求风险分散:混合方案提供了天然的风险分散机制

YOLO 617

Ansys Lumerical双层扭曲液晶偏振光栅仿真:宽角度衍射效率优化

Ansys Lumerical双层扭曲液晶偏振光栅仿真研究 摘要 本文采用Ansys Lumerical软件平台,对双层扭曲液晶偏振光栅的宽角度衍射特性进行系统仿真研究。针对6μm周期的液晶光栅结构,以1050nm、1064nm和1550nm三个近红外波段为研究对象,在±40°入射角范围内优化平均衍射效率。研究基于液晶材料的双折射特性(Δn=0.135),通过构建两层扭曲方向相反的液晶层结构,扫描0-90°单层扭曲角度和不同厚度参数,利用RCWA求解器进行严格耦合波分析~~~~~~~

huanghm88的专栏 164

组合寄生继承和class继承的区别

先看下什么是原型继承 function object( o ){ var F = function(){}; F.prototype = o; return new F(); } var obj = { name : 'li', ...

2421

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

继承与组合

继承就是创建新类的一种方式,这个新类可以继承一个或者多个其他类的属性新的类如果有自己属性,那就叫派生如果属性不封的情况下,谁实例化得到的self 就去谁里面找如果属性封装的情况下 ,谁实例化得到的self 无效,只能在当前所在的类的名称空间里面找。

g1446992400的博客 1890

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

C++之5|组合与继承

在C语言中,键盘输入打印信息如下 运行结果 例22、在C++中,io流表示 运行结果 当然,除此之外还可以直接打印数字,以及其对应的进制数 运行结果 2、组合 假如现在需要做个学生管理系统类的应用,然后想起之前做过一个有尾部追加功能的类,在这里有机会用上,于是,组合就派上了用场。比如说,之前做的尾部追加功能数组类叫ARR,现在想用在目前的学生管理系统类stuma里,实现如下arr.cpp arr.h main.cpp 运行结果 上例的addtail()本来是属于ARR类的,让它组合其它功能实现一起(本例没

weixin_44035986的博客 1518

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

C++继承与组合

/对父类的成员使用父类的运算符重载。// 1、子类的构造函数必须调用父类的构造函数构造父类的部分,如果父类没有默认构造函数。// ·组合是一种黑箱复用对象的内部细节不可见,要求被组合的对象有定义良好的关系,耦合度更低。// 2、当子类和父类有同名的成员变量时,子类会限制父类对同类成员变量的访问,这叫做隐藏。// (父类的private子类不能访问,因此如果继承的话子类中父类的部分无法被初始化)//迭代器的设计就是封装,有可能是原生指针,有可能是类封装的指针,屏蔽了底层的复杂细节。

wangjialelele的博客 1200

C++继承与组合的区别

1、继承与组合 2、继承和组合的使用场景 3、继承和组合的区别 4、继承和组合的优缺点 (1)继承的优缺点 (2)组合的优缺点 1、继承与组合 C++程序开发中,设计孤立的类比较容易,设计相互关联的类却比较难,这其中会涉及两个概念,一个是继承(Inheritance),一个是组合(Composition)。因为二者有一定的相似性,往往令程序员混淆不清。类的组合和继承一...

蓬莱道人的博客 4470

组合与继承c++_组合与继承

组合与继承的区别Composition vs Inheritance is one of the frequently asked interview questions. You must have also heard to use Composition over Inheritance. 作文与继承是面试中常见的问题之一。 您还必须听说过使用“继承而不是继承”。 组合与继承 (Comp...

从零开始的教程世界 432

C++ 继承与组合的区别

C++ 程序开发中,设计孤立的类比较容易,设计相互关联的类却比较难,这其中会涉及两个概念,一个是继承(Inheritance),一个是组合(Composition)。因为二者有一定的相似性,往往令程序员混淆不清。类的组合和继承一样,是软件重用的重要方式。组合和继承都是有效地利用已有类的资源。但二者的概念和用法不同。

Doublelv 的博客专栏。 7141

C++继承与组合完结

很多人说 C++ 语法复杂,其实多继承就是一个体现。有了多继承,就存在菱形继承,有了菱形继承就有菱形虚拟继承,底层实现就很复杂。所以一般不建议设计出多继承,一定不要设计出菱形继承。否则在复杂度及性能上都有问题。多继承可以认为是 C++ 的缺陷之一,很多后来的语言都没有多继承,如 java。继承和组合public 继承是一种 is-a 的关系。也就是说每个派生类对象都是一个基类对象。组合是一种 has-a 的关系。假设 B 组合了 A,每个 B 对象中都有一个 A 对象。

popingcat的博客 1224

继承与组合的区别

类继承与对象组合是实现类复用的两种最常用的技术。 一:继承   继承是Is a 的关系,比如说Student继承Person,则说明Student is a Person。继承的优点是子类可以重写父类的方法来方便地实现对父类的扩展。   继承的缺点有以下几点:   1:父类的内部细节对子类是可见的。   2:子类从父类继承的方法在编译时就确定下来了,所以无法在运行期间改变从父类继承的

Gavin-Xu的博客 7407

C++之组合与继承

C++之组合与继承 组合:将一个类的对象作为另一个类的成员,被称作组合或包含,创建包含对象成员的组合对象时,会执行成员类的构造函数初始化对象成员。成员初始化的次序和成员声明的次序相同,并不考虑它们在初始化列表中的排列顺序。 复用类: 一、如果可以获得源码,修改其源代码 二、如果不能获得源代码,或者担心因修改代码引入错误,这时我们可以应用组合,重新包装一个类对象,对外提供新接口,使之用于特定的环境。...

是小光a~ 686

继承与组合之间的联系

继承与组合父类应该如何设计?什么时候需要从父类派生子类?继承与组合的区别 父类应该如何设计? 尽量隐藏父类的内部数据。尽量把父类的所有成员变量都设成private访问类型,不要让子类直接访问父类的成员变量。 对于父类中的辅助性工具方法,用private访问控制修饰符修饰,让子类无法直接访问。 如果父类中的方法需要被外部类访问,则用public访问修饰符修饰;但又不希望子类重写该方法,可以使用fi...

qq_45534035的博客 298
上一篇: 构建乘积数组
下一篇: 继承虚函数&数组名做参数
「已注销」
博客等级 码龄12年 6粉丝 30原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值