1.重写
①方法名,参数,返回值相同;
②子类方法不能缩小父类方法的访问权限;
③子类方法不能抛出比父类方法更多的异常;
④存在于子类于父类之间;
⑤被final修饰的方法不能重写。
2.重载
①参数的类型,个数,顺序至少要有一个不相同;
②如果两个方法的方法名,参数类型,个数,顺序均相同,只有返回值类型不同,则无法构成重载。
③存在于子类和父类同类之中。
测试:
class A{
public int get(int a){
return a;
}
public int get(int a, int b){ //重载了get方法
return a + b;
}
public void get(int a, int b){ //只有返回值类型不一样,无法重载
a++;
}
private int get(int a, int b, int c){ //重载了get方法,权限可以改变
return a + b;
}
}
class B extends A{
public int get(int a){ //重写了父类A中的get方法
a++;
return a;
}
private int get(int a){ //错误,子类中重写方法的权限小于父类
a--;
return a;
}
}