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

重写(Override)

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

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

 

方法的重写规则

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

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

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

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

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

构造方法不能被重写;

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

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

 

super关键字

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

 

重载(Overload)

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

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

 

重载规则

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

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

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

 

重写与重载之间的区别

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

 

 

 

 

 

 

 

 

 

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

 

posted @   糖小豆  阅读(87)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· winform 绘制太阳,地球,月球 运作规律
· 上周热点回顾(3.3-3.9)
点击右上角即可分享
微信分享提示