Java方法重写和重载的区别
本文借鉴于JavaGuide,用于学习记录
文章目录
- 初步理解二者区别
- 重载
- 重写
- 方法重写遵循“两同两小一大”
- 重写返回值类型
初步理解二者区别
重载 就是同样一个方法能够根据不同的输入数据,做出不同的处理
重写 就是当子类继承自父类的相同方法,输入数据一样,但是要做出有别于父类的响应时,你就要覆盖父类的方法
重载
发生在同一个类中(或者父类和子类之间),方法名必须相同,参数类型不同、个数不同、顺序不同,方法返回值和访问修饰符可以不同
重载是发生在编译期
重写
重写发生在运行期,是子类对父类的允许访问的方法的实现过程进行重新编写
- 返回值类型、方法名、参数列表必须相同,抛出的异常范围小于等于父类,访问修饰符范围大于等于父类
- 如果父类方法访问修饰符为
private/final/static
则子类就不能重写改方法,但是被static修饰的方法能够被再次声明 - 构造方法无法被重写
重写 就是子类对父类方法的重新改造,外部样子不能改变,内部逻辑可以改变
重写是发生在运行期
方法重写遵循“两同两小一大”
- “两同”即方法名相同、形参列表相同
- “两小”指的是子类方法返回值类型应比父类返回值类型更小或相等,子类方法声明抛出的异常类应比父类方法声明抛出的异常类更小或相等
- “一大”指的是子类方法的访问权限应比父类的访问权限更大或相等
重写返回值类型
重写 如果方法的返回类型是void和基本数据类型,则返回值重写时不可修改。但是如果方法的返回值是引用类型,重写时是可以返回改引用类型的子类的
public class Hero {public String name() {return "超级英雄";}
}
public class SuperMan extends Hero{@Overridepublic String name() {return "超人";}public Hero hero() {return new Hero();}
}public class SuperSuperMan extends SuperMan {public String name() {return "超级超级英雄";}@Overridepublic SuperMan hero() {return new SuperMan();}
}
Java方法重写和重载的区别相关推荐
- Java 方法重写与重载的区别 示例 重载多数相加求和 重写toString()和equals()
Java 方法重写与重载的区别 重载:在同一个类中,当方法名相同,形参列表不同的时候 多个方法构成了重载 重写:在不同的类中,子类对父类提供的方法不满意的时候,要对父类的方法进行重写. 名称\属性 E ...
- Java方法重写与重载的区别
Java方法重写(Override)与重载(Overload)的区别(超详细) 首页在我们要学习这个知识点之前,应该要先了解什么是多态? 在最初学习java的时候,人们都知道,java这种面向对象的语 ...
- Java中方法重写和重载的区别
一.方法的重载 - 重载(overloading) 是在一个类里面,方法名字相同,而参数不同.返回类型可以相同也可以不同.每个重载的方法(或者构造函数)都必须有一个独一无二的参数类型列表. 重载的规则 ...
- 01Java方法重写与重载的区别
1.方法重载(Overload) 概念:: 在同一个类中,"功能1"和"功能2"功能相似,可以考虑将他们的方法名命名一致,这样代码既美观,又便于后期代码编写(容 ...
- Java方法重写与重载
目录 一.方法重载(overload) 概念 注意 二.方法重写(0verride) 概念 方法重写的应用场景 @Override注解 注意 三.重写与重载区别 访问修饰符 一.方法重载(overlo ...
- Java—重写与重载的区别
Java-重写与重载的区别 这几周开始看Java的知识,发现有一个有趣的现象就是,前两天刚看过的知识点,过一天又忘掉了.而且很多东西堆在脑子里像浆糊一样.所以边学习边总结是很重要的,今天想写一篇关于重 ...
- java重写和重载 关键字_Java重写和重载的区别
一.重写(Override) 重写是子类对父类的允许访问的方法的实现过程进行重新编写, 返回值和形参都不能改变.即外壳不变,核心重写! 二.重载(Overload) 重载(overloading) 是 ...
- java方法重载_在Python中该如何实现Java的重写与重载
前言 文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. 作者:清风python PS:如有需要Python学习资料的小伙伴可以加点击 ...
- java方法重写和super关键字
//java方法重写和super关键字 //在继承中,其实就是子类定义了和父类同名的方法 //就是方法,属性都是相通的 //重写限制: //被子类重写的方法不能拥有比父类方法更加严格的权限 //sup ...
- 重写与重载的区别 以及 重写中super的使用
重写是父类方法与子类方法有共同的参数名参数列表,返回类型必须父类的方法一致.子类的访问修饰符一定要大于等于父类的访问修饰符.如果在子类中还需要用到父类的方法,用super.method() 然后继续写 ...
最新文章
- linux配置java环境变量(详细)
- Maltego发布新版本4.2.18
- 图像降噪算法——低秩聚类:WNNM算法
- 一篇文章学会Python函数重写,每天进步一个知识点
- storm后台启动命令(避免新开窗口)
- python获取局域网内的设备_python调用nmap探测局域网设备
- 快速定位Product assignment block里对应的修改逻辑使用的function module
- dev可以运行mysql文件夹_Linux查看mysql 安装路径和运行路径
- 【Python CheckiO 题解】Between Markers
- PyTorch学习(8)-问答系统、文本摘要和大规模预训练语言模型
- Java基础学习总结(99)——Java代码性能优化总结
- Windows XP解决显示桌面图标消失的问题
- matlab用平方法怎么求传递闭包矩阵,逐次平方法计算传递闭包
- 如何在命令行下用命令slmgr激活windows8系统
- 使用nodejs-koa2-mysql-sequelize-jwt 实现项目api接口
- windows不能同时连接有线和无线
- 计算机管理怎么分硬盘,电脑磁盘空间划分_电脑磁盘分区怎么分
- mint系统用wine打开exe文件
- 项立刚:国外品牌很可能输掉3G手机这一战役
- 初识Scrapy之再续火影情缘
热门文章
- 关于C和C++的register关键字
- 2022-2027年中国新能源车电控电机市场竞争态势及行业投资前景预测报告
- 什么是着色器 (Shader)占用率(Occupancy)? 为什么我们应该关心它?
- 基于Auto.js的萌猫跳辅助
- Word中插入目录时未找到目录项
- 家用台式电脑计算机上的硬磁盘,台式电脑如何连接硬盘
- Intellij IDEA--配色方案/主题/风格/样式--自定义/配置
- 深度学习--二值神经网络BNN基础概念学习总结+官方代码解析
- Android 自带的字体库、字体样式
- vs2013 CodeLens