重载 :overload
1、方法名相同、参数列表不同(参数类型、数量)
public class Demo{
public static void main(String[] args){
new Demo().say();
new Demo().say(100,200);
}
// 两个say方法构成重载,可根据参数不同,调用不同方法
public void say(){
System.out.println("这是一个无参方法");
}
public void say(int a,int b){
System.out.println("这是一个有参方法");
}
}
重写 :override
1、方法名相同、参数列表相同、返回值相同
2、父类方法只能被子类重写且访问权限不能低于父类方法
3、使用static、private 修饰的方法不能被重写,但可再次声明
4、异常抛出范围可以更小,但不能抛出新的异常
// 定义父类
public class Pather{
public void say(){
System.out.println("父类方法");
}
}
public class Son extends Pather{
public static void main(String[] args){
new Pather().say();
}
// 重写父类say方法
// 因为父亲方法使用public声明,因此子类say方法不可使用protected、
// default、private声明
public void say(){
System.out.println("子类重写了父类方法");
}
}