详解Java中方法重写与重载的区别(面试高频问点)
时间:2022-03-27 08:31:06|栏目: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;
}
上一篇:springboot jpa之返回表中部分字段的处理详解
栏 目:JAVA代码
本文标题:详解Java中方法重写与重载的区别(面试高频问点)
本文地址:http://www.codeinn.net/misctech/197421.html


阅读排行
- 1Java Swing组件BoxLayout布局用法示例
- 2java中-jar 与nohup的对比
- 3Java邮件发送程序(可以同时发给多个地址、可以带附件)
- 4Caused by: java.lang.ClassNotFoundException: org.objectweb.asm.Type异常
- 5Java中自定义异常详解及实例代码
- 6深入理解Java中的克隆
- 7java读取excel文件的两种方法
- 8解析SpringSecurity+JWT认证流程实现
- 9spring boot里增加表单验证hibernate-validator并在freemarker模板里显示错误信息(推荐)
- 10深入解析java虚拟机




