浅谈java中的重载和重写的区别
作者:张九日。 发布时间:2023-03-31 04:45:57
1.重载
重载指在一个类中,具有多个相同名称的方法,他们的参数列表却不相同
(参数类型不同、参数个数不同甚至是参数顺序不同)
重载对返回类型没有要求,可以相同也可以不同,但是不能返回类型来判断他们是否是重载。
例如
package HelloWorld;
public class Zuoye {
public static void main(String[] args) {
Zuoye z = new Zuoye();
z.fangfa1();
z.fangfa1("张旭");
}
public void fangfa1() {
System.out.println("方法1");
}
public void fangfa1(String name) {
System.out.println("也是方法1,不过有参数"+ name);
}
}
小结:
1.重载是一个类中多态性的一种表现
2.重载是在一个类中,具有相同名称不同参数列表的方法
3.重载不能根据返回类型的相同或者不同来区分重载函数。
2.重写
1.重写是指在不同类中,将父类的方法在子类中重新写一遍,子类继承了父类原有的方法,但有时又不想继承父类原有一模一样的方法,所以就在返回类型,方法名,参数列表相同的情况下,对方法体进行修改进行重写,这就是重写。但注意的是 子类的访问修饰符不能比父类的更严格(意思就是父类的访问修饰符要更加 严谨,权限更少,父亲严格)
例如
package HelloWorld;
public class Father {
public static void main(String[] args) {
Son s = new Son();
s.fangfa();
}
public void fangfa() {
System.out.println("我是爸爸的方法");
}
}
class Son extends Father {
public void fangfa() {
System.out.println("我是儿子的方法");
}
}
返回结果是
小结:
1. 发生在父类和子类关系之间
2. 他们的返回类型,方法名,列表参数相同 方法体不同。
3.子类不能比父类更严格 ,(父亲比儿子严格)。
4重写方法一定不能抛出新的检查异常或者比被重写方法申明更加宽泛的检查型异常
private 最严格。
private
: 在同一类内可见。使用对象:变量、方法。 注意:不能修饰类(外部类)
default
(即缺省,什么也不写,不使用任何关键字): 在同一包内可见,不使用任何修饰符。使用对象:类、接口、变量、方法。
protected
: 对同一包内的类和所有子类可见。使用对象:变量、方法。 注意:不能修饰类(外部类)。
public
: 对所有类可见。使用对象:类、接口、变量、方法
总结重载和重写的区别:
答:方法的重载和重写都是实现多态的方式 ,区别在于重载实现的是编译时的多态性,重写实现的运行时的多态性。
重载是在发生在同一个类中,他们有相同的方法名 ,但有不同的参数列表,重载对返回类型没有特别要求,不能根据返回类型来进行区分 。
而重写发生在不同类中,发生在子类和父类之间的,重写要求子类与父类的被重写方法具有相同的返回类型,名称和参数列表。 但他们的方法体要不同。 同时,父类相较于子类,他的访问修饰符会更加严格,即访问范围更小。比父类被重写方法更好访问,不能比父类被重写方法声明更多的异常(里氏代换原则) 。
来源:https://blog.csdn.net/chengxuzx/article/details/121034510


猜你喜欢
- 前段时间写了一篇基于mybatis实现的多数据源博客。感觉不是很好,这次打算加入git,来搭建一个基于Mybatis-Plus的多数据源项目
- 所谓前人栽树,后人乘凉,在此感谢博主的贡献。 原文:边缘凹凸的卡劵效果先上效果图:我实现的效果和原博主实现的效果是不一样的,我是左右边缘凹凸
- Map接口Map提供了一种映射关系,其中的元素是以键值对(key-value)的形式存储的,能够实现根据key快速查找value;Map中的
- Spring Boot 解决富文本上传图片跨域在前后端分离的情况下,后台所写的接口在前端调用的时候,可能前端浏览器已经读取到了数据,但是在前
- 本项目是前端vue3,后端springboot开发 需求为:前端导入表格,后端处理表格存储数据,点击按钮可以导出表格。上传效果:前端点击上传
- 截取字符串最后一位1.用substring()来截取理论上它是按照字符串.substring(字符串.lastIndexOf("\
- 本文实例讲述了Android编程之交互对话框。分享给大家供大家参考,具体如下:1. 在Android SDK中,虽然有许多的窗口,有些类似M
- 一 点睛注解若想发挥更大作用,还需借助反射机制之力。通过反射,可以取得一个方法上声明的注解的全部内容。一般有两种需求:1 
- 本文实例讲述了WinForm通过操作注册表实现限制软件使用次数的方法。分享给大家供大家参考,具体如下:1.创建注册表文件:打开记事本,输入一
- 什么是SpringSpring是一个开源框架,它由Rod Johnson创建。它是为了解决企业应用开发的复杂性而创建的。 &nbs
- Spring AOP复杂的日志记录(自定义注解)做项目中,业务逻辑要求只要对数据库数据进行改动的都需要记录日志(增删改),记录的内容有操作者
- 本文实例讲述了C#检测上传文件真正类型的方法。分享给大家供大家参考。具体分析如下:对于用户上传的文件如果只是根据扩展名判断,很容易上传上来可
- java中Hashmap的get方法map中存储的是键值对,也就是说通过set方法进行参数和值的存储,之后通过get“键”的形式进行值的读取
- Android深入浅出之Binder机制一 说明 Android系统最常见也是初学者最难搞明白的就是Binder了,很多很多的Se
- 前言开发中常用到主从数据库来提高系统的性能。怎么样才能方便的实现主从读写分离呢?近日工作任务较轻,有空学习学习技术,遂来研究如果实现读写分离
- 经过上一篇的介绍,相信小伙伴们已经按奈不住内心对springboot的向往,本篇我将继续向小伙伴介绍springboot配置文件的配置,已经
- 本篇介绍基于SSM框架(Spring4.0+SpringMVC+Mybatis)组合的Javamail应用,邮箱的话基于腾讯的QQ邮箱,其实
- 本文实例讲述了Java创建ZIP压缩文件的方法。分享给大家供大家参考。具体如下:这里注意:建议使用org.apache.tools.zip.
- 本文实例讲述了C#获取项目指定目录下文件的方法。分享给大家供大家参考。具体如下:public List<FileInfo> Ge
- 算法思想快速排序是C.R.A.Hoare于1962年提出的一种划分交换排序。它采用了一种分治的策略,通常称其为分治法(Divide-and-