[学习笔记]Java重写和重载

重写(Override)

重写是子类对允许访问的父类方法的方法体重新进行编写,返回值和形参不发生改变;

通过重写,子类可以根据需要定义特定于自身的行为,根据需要实现父类的方法;

方法的重写规则

重写方法时参数列表要保持不变;

重写方法的返回值类型可以发生改变,但必须是父类返回值的派生类;

重写方法的访问权限不能比被重写方法的访问权限更低;

被声明为final的方法不能被重写;

被声明为static的方法不能被重写,但可以重新声明;

构造方法不能被重写;

若子类和父类在同一个包里,则子类可以重写父类的方法非final方法;

若子类和父类不在同一个包里,则子类只能重复父类的声明为public和protected的非final方法;

super关键字

super关键字除了可以用于调用父类的构造函数,还可以调用父类的被重写方法;

重载(Overload)

重载发生在同一个类当中或子类当中,当方法名字相同,而参数不同时则成为重载(每个重载方法包括构造方法都必须具有独特的参数列表);

重载的方法的返回值类型可以发生变化,也可以不发生变化;

重载规则

重载时必须改变参数列表,包括改变参数个数或参数类型;

重载时可以修改方法的访问修饰符;

不能以返回值类型的变化来判定方法是否重载;

重写与重载之间的区别

参数列表 不能修改 一定要修改 返回类型 不能修改 可以修改 异常 可以减少或删除,但不能抛出新增或更广的异常 可以修改 访问 不能用更严格的访问修饰符 可以修改

方法重载是一个类的多态性的表现,方法重写是子类与父类的一种多态性的表现;

Original: https://www.cnblogs.com/cloudyzcy/p/16328638.html
Author: 糖小豆
Title: [学习笔记]Java重写和重载

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/713013/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球