方法重载和重写的区别
-
方法的重载
- 重载:在同一个类中,声明多个同名方法,通过参数列表来区分不同的方法(参数列表的数量,类型、顺序)
public class Demo {
private String name;
private int age;
public static void main(String[] args) {
Demo demo=new Demo();
demo.test1();
demo.test1("张三");
demo.test1("王五", 19);
demo.test1(18, "李四");
}
public void test1() {
}
public String test1(String name) {
return name;
}
public void test1(String name,int age) {
this.name=name;
this.age=age;
}
public void test1(int age,String name) {
this.age=age;
this.name=name;
}
}
【注意】:方法的重载跟访问修饰符和返回值类型没有关系
-
方法的重写
- 重写:前提是发生在具有继承关系的两个类之间(子类可以继承父类非私有的方法),当父类方法不能满足子类需求时,子类可以对继承的方法进行重新编写
- 重写规则:
-
参数列表必须保持一致;
-
返回值类型必须保持一致;
-
方法名必须保持一致;
-
重写的方法的访问权限范围必须大于等于父类方法;
-
重写方法抛出的异常范围不能大于父类方法;
【概括】重写方法的声明部分要和父类保持一致,访问权限不能小于父类,抛出异常的范围不能大于父类