当前位置: 首页 > news >正文

【Java】重载和重写的区别

重载(Overload)

同一个类中,同名的方法如果有不同的参数列表(参数类型不同、参数个数不同甚至是参数顺序不同)则视为重载。同时,重载对返回类型没有要求,可以相同也可以不同,但不能通过返回类型是否相同来判断重载。

注意
1.重载(Overload)是一个类中多态性的一种表现
2.重载要求同名方法的参数列表不同(参数类型,参数个数甚至是参数顺序)
3.重载的时候,返回值类型可以相同也可以不相同。无法以返回型别作为重载函数的区分标准

重写(Override)

子类中把父类有的方法重新写一遍。子类继承了父类原有的方法,但有时子类并不想原封不动的继承父类中的某个方法,所以在方法名参数列表返回类型相同的情况下, 对方法体进行修改或重写,这就是重写。

注意
1.子类函数的访问修饰权限不能少于父类的(public>protected>default>private)。
2.父类被static、private修饰的方法、构造方法都不能被重写。
3.子类和父类在同一个包中,那么子类可以重写父类所有方法,除了声明为 private 和 final 的方法。
4.子类和父类不在同一个包中,那么子类只能够重写父类的声明为 public 和 protected 的非 final 方法。

区别

区别点重载重写
发生的类同一个类子类
参数列表必须修改一定不能修改
返回类型可以修改一定不能修改
访问限定符可以修改一定不能做更严格的限制(可以降低限制)
异常可以修改可以减少或者删除,一定不能抛出新的或者更广的异常

重载发生在同一个类中,方法名相同、参数列表、返回类型、权限修饰符可以不同

重写发生在子类中,方法名、参数列表、返回类型都相同,权限修饰符要大于父类方法,声明异常范围要小于父类方法,但是final和private修饰的方法不可重写

http://www.lryc.cn/news/3277.html

相关文章:

  • AcWing 第 90 场周赛
  • 刚刚,体验了一把Bing chat很爽
  • 牛客网Python篇数据分析习题(二)
  • 如何用Python打包好exe文件,并替换图标
  • NFC概述摘要
  • Python-项目实战--贪吃蛇小游戏(1)
  • vscode sftp从linux服务器下载文件至本地:No such file or dictionary【已解决】
  • 详解指针(2)(初阶版)
  • 超详细讲解字符串查找函数(保姆级教程!!!)
  • LeetCode-1138. 字母板上的路径【哈希表,字符串】
  • Vue 可配置化的路由缓存(Vu2 Vue3)
  • Linux VPU驱动
  • spring 笔记
  • Java日志框架学习
  • 基础面试题:堆和栈的区别
  • (干货教程)在VSCode并使用chatgtp插件编写CC++语言程序
  • 【思维模型】概率思维的价值:找到你的人生算法,实现阶级跃迁!
  • SpringBoot + kotlin/java + Mybatis-Plus +Sqlite + Gradle多模块项目
  • Docker 容器与容器云读书笔记(一)
  • 软件设计(九)
  • FoveaBox原理与代码解析
  • Linux内核启动(1,0.11版本)启动BIOS与加载内核
  • python制作贪吃蛇小游戏,畅玩无限制
  • MySQL-InnoDB数据页结构浅析
  • Java、JSP职工人事管理系统设计与实现
  • 数据结构与算法这么难,为什么我们还要学习?
  • 剑指 Offer 52. 两个链表的第一个公共节点
  • 可以写进简历的软件测试电商项目,不进来get一下?
  • 蓝桥杯-算法-印章问题
  • 戴尔游匣G16电脑U盘安装系统操作教程分享