一、 方法重载
1.什么是方法重载?
Java中方法的重载,就是在一个类中,有相同的方法名称,但形参不同的方法
2.方法重载的规则
* 在同一个类中
* 方法名相同
* 参数不同
*个数不同
*类型不同
*顺序不同
简单来说:同一个类中,方法名相同,参数不同
注意:是否为重载关系,只看方法名和参数,跟返回值无关
案例1(参数个数不同)
public class Main {
public static void main(String[] args) {
}
public static void add(int a,int b){
}
public static void add(int a,int b,int c){
}
}
执行效果
案例2(参数类型不同)
public class Main {
public static void main(String[] args) {
}
public static void add(long a,int b){
}
public static void add(int a,int b){
}
}
执行效果
案例3(参数顺序不同)
public class Main {
public static void main(String[] args) {
}
public static void add(long a,int b){
}
public static void add( int b,long a){
}
}
执行效果
注意
这里的顺序不同,一定要是不同类型的顺序不同,
而不能是同类型的顺序不同而已,要不然就不是重载会报错
例子
public class Main {
public static void main(String[] args) {
}
public static void add(int a,int b){
} //报错
public static void add( int b,int a){
} //报错
}
3.方法重载的作用
* 统一方法名,提高方法的兼容性和灵活性,方便调用者使用方法
* JDK中大量使用了方法重载,比如println方法就是重载,目的是调用println时只需要记住一个名字,使用方便
二、方法重写
1.什么是方法重写?
*子类中对父类已有的方法重新实现功能
*当子类和父类有相同的功能,但父类的该功能不满足子类的需求时,子类可以重写父类中的方法。
案例
public class Animal {
public void run(){
System.out.println("运动");
}
}
public class Dog extends Animal{
//方法重写:在继承父类的方法基础上,进行方法的升级改造
@Override //注解,检查重写的语法是否正确,如果错误会报错
public void run() {
System.out.println("四条腿跑");
}
}
2.方法重写的前提
要有继承关系,在子类可以重写方法
3.方法重写的规则
*方法名、参数列表、返回值类型都保持不变,和父类一样
*子类重写的方法,访问权限要大于等于父类方法的权限
private -> default -> protected -> public
*私有方法和静态方法不能被重写
tips: @Override注解可以检验重写格式
案例
三、两者的区别
方法重载 方法重写
概念 同一个类中,方法名相同,参数不同 方法名、参数列表、返回值类型都保持不变,和父类一样
范围 同一个类中 要有继承关系,在子类可以重写方法
限制 没有访问限制 *子类重写的方法,访问权限要大于等于父类方法的权限
*私有方法和静态方法不能被重写
作者:KJ.JK
本文仅用于交流学习,未经作者允许,禁止转载,更勿做其他用途,违者必究。
文章对你有所帮助的话,欢迎给个赞或者 star,你的支持是对作者最大的鼓励,不足之处可以在评论区多多指正,交流学习