重新理解方法的重写和重载
2016-05-26 20:57
351 查看
这是一个老问题,但是总觉得对这个问题理解的不深。
重写和重载常常被同时提起,实际上两者没有什么太大的关系, 重写描述的是父类和子类之间关系的特点,子类可以重写父类的方法,这种被重写的方法具有与父类相同的方法名,参数类型相同, 返回值相同,或是父类返回值的子类。
而重载,描述的是一个类内部方法之间的关系。方法的关键元素包括方法名、方法体、参数、返回值, 四个元素共同定位一个类的方法,同一个方法在一个类中有且仅能出现一次,如果出现了两个方法,具有相同的方法名,而返回值和参数不同,哪怕是前一个方法返回值和参数的子类或实现类,也是不同的方法,这就是方法重载。
问题来了,
子类为什么重写父类方法?为什么需要重载一个方法? 换句话说,当年JDK为什么要提供这两个功能? 难道只是为了方便吗?
要把这个问题弄清楚,需要从这里下手。
1.重写和重载,在编译期和运行期的执行过程
2.重写和重载到底优化了什么
编译期是指把你的源程序交给编译器编译的过程,最终目的是得到可执行的文件。运行期指的是你将可执行文件交给操作系统(输入文件名,回车)执行、直到程序执行结束的期间,执行的目的是为了实现程序的功能。
相关文章推荐
- #include <unistd.h> 头文件
- 一点反省
- SQL注入测试平台 SQLol -5.DELETE注入测试
- JS DOM:显示文献来源链接表
- 内存优化
- 《Effective Java》
- linux系统结构与文件管理命令
- C# ThreadPool 线程同步
- codeforces 460D Little Victor and Set(构造)
- 虚方法实现多态
- Android Studio Gradle Error - Protocol Family Unavailable
- STM32F0_新建软件工程详细过程
- acm_录取概率
- Python+Android自动化测试搭建环境
- CodeChef FNCS(分块)
- PHP - 如何解析HTML文件
- PHP - 如何解析HTML文件
- Android中TextVIew一些属性
- S2SH项目实现分页功能
- 优秀软件攻城狮团队的氛围