网站首页 > 精选文章 / 正文
【死记硬背】
(1)overload(重载),即函数重载:
①在同一个类中;
②函数名字相同;
③函数参数不同(类型不同、数量不同,两者满足其一即可);
④不以返回值类型不同作为函数重载的条件。
(2)override(覆盖,子类改写父类的虚函数),用于实现C++中多态:
①分别位于父类和子类中;
②子类改写父类中的virtual方法;
③与父类中的函数原型相同。
(3)overwrite(重写或叫隐藏,子类改写父类的非虚函数,从而屏蔽父类函数):
①与overload类似,但是范围不同,是子类改写父类;
②与override类似,但是父类中的方法不是虚函数。
【答案解析】
Overload(重载)
概念:重载指的是在同一个作用域内(通常是同一个类中),可以有多个同名的方法,但是这些方法的参数列表必须不同(参数个数、类型或者顺序不同)。方法的返回类型不影响重载。重载允许函数或方法名称复用,提供了函数调用的灵活性。
应用:通过重载,可以根据不同的输入参数调用相应版本的函数,实现不同的逻辑处理。
支持语言特性:几乎所有的面向对象编程语言都支持方法重载,包括Java、C++等。
Override(重写)
概念:重写发生在继承关系中,子类重新定义了父类中的某个方法。重写的方法名、参数列表必须与父类中的被重写方法完全相同,返回类型需兼容(在Java中要求相同或为子类)。访问权限不能比父类中被重写的方法更严格。
应用:重写主要用于实现多态性,允许子类根据自身需求改变父类行为,增加代码的灵活性和可维护性。
支持语言特性:支持面向对象编程的语言普遍支持重写,如Java、C#等。
Overwrite(覆写)
概念:在某些上下文中,“覆写”可能被用来非正式地指代“重写”(Override),尤其是在一些特定领域或较早的文献中。但在现代编程讨论中,"overwrite"更多时候不是一个标准术语,容易引起混淆。正确的术语应该是Override。
澄清:在一些非标准或特定的上下文中,如果提到"overwrite",可能是指错误地或不恰当地修改了已有代码或数据,但这并不是面向对象编程中的一个规范概念。
注意:避免使用“overwrite”来描述面向对象编程中的方法替换行为,以免与重写(Override)混淆。正确的表述应该使用Override来特指子类中改变父类方法行为的情况。
【温馨提示】
点赞+收藏文章,关注我并私信回复【面试题解析】,即可100%免费领取楼主的所有面试题资料!
Tags:cp overwrite
猜你喜欢
- 2025-01-11 计算机启动知识系列 - 一个UEFI例子
- 2025-01-11 Java基础教程:k8s快速入门
- 2025-01-11 5种全站仪简易教程,测量基本功!
- 2025-01-11 电脑加装固态硬盘后,系统一定要重装吗?
- 2025-01-11 Spark整合Ray思路漫谈
- 2025-01-11 《上古卷轴5》UNP身形高跟鞋BS化教程 U身高跟鞋BodySlide模型教学
- 2025-01-11 iOS 16.1.2 App 加速方法,不用电脑也行
- 2025-01-11 键值数据库LevelDB的优缺点及性能分析
- 2025-01-11 更新了,iOS 16.5 字体修改工具,操作更加简单
- 2025-01-11 sqlite wal 分析