重载:编译期,同一个类中,多个同名方法根据不同传参,执行不同的逻辑处理;
- 重载发生在同一个类中;
- 方法的参数列表必须不一致(类型不同、个数不同、顺序不同);
- 方法的返回值和访问修饰符可以不同;
- 构造牌可以重载;
- 重载发生在编译期;
重写:运行期,子类对父类方法的内部逻辑重新改造,外部定义不能改变;
- 重写发生范围在子类中;
- 参数列表必须与父类方法一致;
- 方法名、参数列表必须相同返回值类型和抛出的异常范围小于等于父类,访问修饰符范围大于等于父类;
- 如果父类方法访问修饰符为private、final、static,则子类就不能重写该方法;
- 构造方法不能被重写;
- 重写发生在运行期;