谈谈你对面向对象的理解
面向对象的三个基本特征是:封装、继承和多态。
继承
继承:让某个类型的对象获得另一个类型的对象的属性的方法。继承就是子类继承父类的特征和行为,使得子类对象(实例)具有父类的实例域和方法,或子类从父类继承方法,使得子类具有父类相同的行为。
好处
- 提高了代码的复用性
- 提高了代码的维护性
- 在类与之间产生了关系,是多态的前提
封装
封装:隐藏部分对象的属性和实现细节,对数据的访问只能通过外公开的接口。通过这种方式,对象对内部数据提供了不同级别的保护,以防止程序中无关的部分意外的改变或错误的使用了对象的私有部分。
好处
-
减少耦合:可以独立地开发、测试、优化、使用、理解和修改
-
减轻维护的负担:可以更容易被程序员理解,并且在调试的时候可以不影响其他模块
-
有效地调节性能:可以通过剖析确定哪些模块影响了系统的性能
-
提高软件的可重用性
-
降低了构建大型系统的风险:即使整个系统不可用,但是这些独立的模块却有可能是可用的
多态
多态:对于同一个行为,不同的子类对象具有不同的表现形式。多态存在的3个条件:
- 要有继承
- 要有重写
- 要有父类引用指向子类对象。
多态的技术成为动态绑定(dynamic binding),是指在执行期间判断所引用对象的实际类型,根据其实际的类型调用其相应的方法。
好处:
- 可替换性(substitutability)。多态对已存在代码具有可替换性。
- 可扩充性(extensibility)。多态对代码具有可扩充性。增加新的子类不影响已存在类的多态性、继承性,以及其他特性的运行和操作。
举个简单的例子:英雄联盟里面我们按下 Q 键这个动作:
对于亚索,就是斩钢闪
对于提莫,就是致盲吹箭
对于剑圣,就是阿尔法突袭
作者:BearBrick0
出处:https://www.cnblogs.com/bearbrick0/p/15871065.html
版权:本作品采用「署名-非商业性使用-相同方式共享 4.0 国际」许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通