详解Java中方法重写与重载的区别(面试高频问点)
作者:悟_dskq 发布时间:2022-07-19 10:36:48
标签:Java,方法,重写,重载
Java中方法重写与重载的区别
重 写 | 重 载 |
子类方法对父类方法的覆盖 | 同一个类中同名方法的重载(同一类包括从父类继承的方法) |
方法名相同且参数个数类型顺序相同 | 参数个数或类型顺序至少满足一点不同 |
只允许访问权限更宽松 | 访问权限任意 |
返回值类型若是基本类型则不允许不同;若是复合类型则在子类与父类间必须至少存在继承关系 | 返回值类型任意 |
final修饰的父类,子类不能重写,反之可以 | final任意 |
静态方法与实例方法不能互相重写 | 任意 |
构造方法不能被重写 | 构造方法可以重载,任意 |
一句话描述清楚:
重写注解:@Override
重载注解:@Overload
方法的重载是方法名相同,方法返回值和修饰符可以不同,方法的形式参数增加或减少,同名方法根据不同传参来处理不同逻辑
方法的重写是方法名相同,方法返回值相同,修饰符相同.方法的形式参数相同,方法体被重写,方法体中的代码功能有所不同,子类对父类方法重新改造,外部样子不能改变,内部逻辑可以改变
代码示例:
方法重写
public void hello(String name){
System.out.println("你好" + name);
}
//重写了hello方法,方法体中的代码实现的功能已改变
public void hello(String name){
System.out.println("你好,我叫" + name);
}
方法重载
public void hello(String name){
System.out.println("你好" + name);
}
//形式参数不同,实现的逻辑不同
public void hello(String name,int age){
System.out.println("你好我叫" + name + "今年" + age + "岁");
}
//形式参数不同,实现的逻辑不同,并且方法返回值不同,且修饰符不同
private String hello(String name,int age,String sex){
return "你好我叫" + name + "今年" + age + "岁"+"性别"+sex;
}
来源:https://www.cnblogs.com/wudskq/archive/2021/03/11/14515128.html


猜你喜欢
- 前言OkHttp是目前非常火的网络库,支持HTTP/2,允许所有同一个主机地址的请求共享同一个socket连接,连接池减少请求延时,透明的G
- 如何建立哈夫曼树的,网上搜索一堆,这里就不写了,直接给代码。1.哈夫曼树结点类:HuffmanNode.h#ifndef HuffmanNo
- 本文实例为大家介绍了Android自定义视图属性的方法,供大家参考,具体内容如下1. 自定义一个自己的视图类继承自Viewpublic cl
- 背景最近让我做一个大数据的系统,分析了一下,麻烦的地方就是多数据源切换抽取数据。考虑到可以跨服务器跨数据库抽数,再整理数据,就配置了这个动态
- ErrorPageFilter的实际应用Spring框架错误页过滤器springboot提供了一个ErrorPageFilter,用来处理当
- java提供了Comparable接口与Compatator接口,它们为数组或集合中的元素提供了排序逻辑,实现此接口的对象数组或集合可以通过
- 什么是TaskScheduler?SynchronizationContext是对“调度程序(scheduler)&am
- 前言:sleep 方法和 wait 方法都是用来将线程进入休眠状态的,并且 sleep 和 wait 方法都可以响应 interrupt 中
- Spring 提供了自动代理机制,可以让容器自动生成代理,从而把开发人员从繁琐的配置中解脱出来 。 具体是使用 BeanPostProces
- DeferredResult的超时处理,采用委托机制,也就是在实例DeferredResult时给予一个超时时长(毫秒),同时在onTime
- 相信大家都经常使用String 的split方法,但是大家有没有遇到下面的这种情况:大家想想下面的代码执行结果是什么public stati
- 前言标签(Label)控件是最常用的控件,在任何Windows应用程序中都可以中都可以看到标签控件。标签控件用于显示用户不能编辑的文件或图像
- 最小二乘法拟合曲线成直线效果拟合前拟合后传入X轴和Y轴的数据,得到新的Y轴数据。将X值数据和拟合后的Y轴数据绑带即可。/// <sum
- 本文实例讲述了Java上传文件进度条的实现方法。分享给大家供大家参考,具体如下:东西很简单,主要用到commons-fileupload,其
- FastDFS简介FastDFS是一款开源的轻量级分布式文件系统,使用C实现,支持Linux、BSD等unix-like操作系统。值得注意的
- Java 编程语言中时间的处理类有 Date类与 Calendar类。目前官方不推荐使用 Date类,因为其不利于国际化;而是推荐使用 Ca
- 对一个集合中的对象进行排序,根据对象的某个指标的大小进行升序或降序排序。代码如下:进行降序排列 进行降序排列 Co
- 1.@RequestMapping的介绍通过@RequestMapping,我们可以把请求地址和方法进行绑定的,可以在类、方法上进行声明。类
- 什么是线程线程被称为轻量级进程,是程序执行的最小单位,它是指在程序执行过程中,能够执行代码的一个执行单位。每个程序程序都至少有一个线程,也即
- 之前讲到了自定义Adapter传递给ListView时,因为ListView的View回收,需要注意当ListView列表项中包含有带有状态