1.重载
方法重载是指在一个类中定义多个同名的方法,但要求每个方法具有不同的参数的类型或参数的个数。调用重载方法时,java编译器能通过检查调用的方法的参数类型和个数选择一个恰当的方法。Java的方法重载就是在类中可以创建多个方法,他们可以有相同的名字,但必须具有不同的参数。
2.重写
在子类中可以根据需要对从父类继承来的方法进行改造,也称为方法的重置,覆盖。在程序执行时,子类的方法将覆盖父类的方法。
子类重写的方法必须和父类被重写的方法具有相同的方法名称,参数列表。
子类重写的方法的返回值类型不能大于父类被重写的方法的返回值类型。
子类重写的方法的使用权限不能小于父类被重写的方法的访问权限,子类不能重写父类中声明为private的方法。
子类方法抛出的异常不能大于父类被重写的方法的异常。
重载与重写的区别
重载:发生在同一个类中,方法名相同,但参数类型、顺序或个数不同,以及方法返回值和访问修饰符可以不同,例如**构造函数
**,发生在编译时。
重写:发生在父子类中,方法签名必须相同,返回值范围小于等于父类,抛出异常小于等于父类,访问修饰符大于等于父类,如果父类方法被 private 修饰,则子类不能重写该方法。