方法重载:方法名相同、参数列表不同,方法重载与返回值类型无关
1、参数个数不同
public int test(int a){
return a;
}
public void test(int a,String b){
}
2、参数类型不同
public void test(String a){
}
public void test(int a){
}
//但是以下代码不属于参数不同,错误代码如下:
//public void test(int b){
//}
//public void test(int a){
//}
3、参数顺序不同
public void test(String a,int b){
}
public void test(int x,String y){
}
//但是以下代码不属于参数不同,错误代码如下:
public void test(String a,int b){
}
public void test(String b,int a){
}
以下代码不属于方法重载,方法重载与返回值类型无关,即使返回值类型不同但是参数列表不一样,方法名相同仍然是方法重载
public void test(String a){
}
public String test(String a){
return a;
}
方法重写
方法重写的前提是:继承
条件:子类必须继承父类、方法名相同、参数列表相同、返回值相兼容(要么和父类一样,要么是父类返回值类型的子类),访问修饰符必须大于父类。
区别:很明显的区别就是参数列表相不相同,以及看是在同一个类里还是子类里,如果选择题中由这两个条件排除了不是属于方法重载,那么你就要看看是否返回值相兼容以及访问修饰符必须大于父类的条件,如果满足就属于方法重写。