java重载/重写(覆盖)/重构比较及其与C++差异
来源:互联网 发布:绘画教程软件 编辑:程序博客网 时间:2024/06/07 09:51
最近在学习java,与c++还是有一定的不同,下面分别比对一下比较容易混淆的重载、重写、重构,及其与C++的差异。
关于c++中重载、覆盖和隐藏参考:http://blog.csdn.net/zhangjikuan/article/details/38447265
http://blog.csdn.net/zhangjikuan/article/details/38437851
java:
重载:java中的重载和c++相同
作用范围:同一个类中
具体:同一个类中的方法名字相同,参数不同的就叫重载,例如一个类中经常会有多个构造函数,其中这多个构造函数构成的就是重载
注:构造函数是个特例,因为构造函数没有返回值,还有一种情况就是其他的都相同(函数名和参数),但是返回值不同会不会构成重载?
不能,因为重载的由来是根据函数参数的不同来调用不同的方法,但是名字和参数相同返回值不同这样在调用的时候就不知道调用的是哪个方法,从而不能够成重 载。
重写(覆盖):c++中没有这个概念,重写也叫覆盖,对应的是c++中的隐藏,覆盖c++中有,但是与c++的覆盖相差比较大。
作用范围:基类与派生类中
具体:派生类中的函数名字与父类中的函数的名字相同,但是返回值、或修饰权限、或参数不同
区别:c++中的隐藏还多了一种情况是virtue关键词
重构:重构是java的重点,因为重构形成多态,对应的是c++中的覆盖
作用范围:基类和派生类中
具体:基类和派生类中的函数名参数返回值都相同,只有函数体不同,是形成多态的基础
区别:比c++中覆盖要简单,因为c++中覆盖必须基类函数是虚函数,java这边重构不考虑什么虚函数,
- java重载/重写(覆盖)/重构比较及其与C++差异
- 重构,重写(覆盖)与重载
- java中的重载、重写与重构
- java中的重载、重写与重构
- 覆盖(重写),重构,重载的区别
- overrid,overLoading /重写 重构,覆盖,重载
- 重写(覆盖),重构,重载
- 【C#】重载重写重构
- 【C#】重构、重载&重写
- java重载与重写(覆盖)
- JAVA重写(覆盖)与重载
- Java重载overloading与重写(覆盖)overriding
- 重写重载,重构,加载,覆盖的区别
- 函数重载、重写与覆盖
- C#重载重写与覆盖
- Java重写(覆盖)、重载、过载
- Java的重写、覆盖、重载
- 函数重载/重写/重定义(覆盖)
- 最小生成树
- 操作系统思考
- socket模块源码略看
- 一组常用的弹出窗口用法
- transition/animation与visibility/display
- java重载/重写(覆盖)/重构比较及其与C++差异
- 简论select()的接口设计与内核实现的得失(2)——The C10M Problem
- Java动态编程初探——Javassist
- C#中取得Web的当前目录
- 根据网站地址将网页保存为图片(网页快照)
- 【总结】"浪潮杯"第七届ACM山东省省赛山师场总结
- C#控制台 C#中数字量不具有bool意义
- arcgis api for javascript 4.0 入门学习(1)创建一个2D地图
- Baby-Step Giant-Step