1、综述
  重写(Override)也称覆盖,它是父类与子类之间多态性的一种表现,而重载(Overload)是一个类中多态性的一种表现。 override从字面就可以知道,它是覆盖了一个方法并且对其重写,以求达到不同的作用。overload它是指我们可以定义一些名称相同的方法,通过定义不同的输入参数来区分这些方法,然后再调用时,VM就会根据不同的参数样式,来选择合适的方法执行。

2、override(重写,覆盖)
(1)方法名、参数、返回值相同。
(2)子类方法不能缩小父类方法的访问权限。
(3)子类方法不能抛出比父类方法更多的异常(但子类方法可以不抛出异常)。
(4)存在于父类和子类之间。
(5)方法被定义为final不能被重写。
(6)被覆盖的方法不能为private,否则在其子类中只是新定义了一个方法,并没有对其进行覆盖。

3、overload(重载,过载)
(1)参数类型、个数、顺序至少有一个不相同。
(2)不能重载只有返回值不同的方法名。
(3)针对于一个类而言。
(4)不能通过访问权限、返回类型、抛出的异常进行重载;
(5)方法的异常类型和数目不会对重载造成影响;

4、override应用:
(1)最熟悉的覆盖就是对接口方法的实现,在接口中一般只是对方法进行了声明,而我们在实现时,就需要实现接口声明的所有方法。
(2)除了这个典型的用法以外,我们在继承中也可能会在子类覆盖父类中的方法。

5、总结
  override是在不同类之间的行为,overload是在同一个类中的行为。

 
 

最新文章

  1. 序列化Image到byte[]
  2. [转]setValue和setObject的区别
  3. UVALive 6168 Fat Ninjas --二分小数+搜索
  4. spring beans源码解读之 ioc容器之始祖--DefaultListableBeanFactory
  5. oracle中统计重复几次的数据有几条
  6. jdbc mysql 取数,突然取不到数据,数据库中有数据
  7. android自定义控件实现刮刮乐效果
  8. 14_RHEL7安装mplayer
  9. 【CCTYPE函数系列】
  10. 数据结构读书笔记(三)(C语言)
  11. [leetcode-553-Optimal Division]
  12. docker~linux下的部署和基本命令
  13. Openstack: MP-BIOS bug: 8254 timer not connected to IO-APIC
  14. Python使用WMI模块获取Windows系统的硬件信息,并使用pyinstaller库编译打包成exe的可执行文件
  15. Linux之使用mount挂载ISO镜像
  16. GeoJson
  17. go os/exec执行外部程序
  18. 数据库基础SQL知识面试题二
  19. tkinter events format
  20. 51nod 1275 连续子段的差异

热门文章

  1. CF1744B Even-Odd Increments
  2. Python博客导航
  3. Python3+Selenium3自动化测试-(八)
  4. 字符编码,存储引擎及MySQL字段类型相关知识点
  5. SSM中PageHelper的使用方法
  6. Thread的常用方法_sleep-实现Runable接口
  7. Argus 与其他(非Oracle B2B)EDI 工具的集成
  8. python开发云主机类型管理脚本
  9. ResponseBodyAdvice处理返回数据
  10. 基于GenericAPIView以及五个视图扩展类写接口