Java教程

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

本文主要是介绍[学习笔记] Java重写和重载,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

重写(Override)

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

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

 

方法的重写规则

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

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

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

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

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

构造方法不能被重写;

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

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

 

super关键字

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

 

重载(Overload)

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

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

 

重载规则

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

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

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

 

重写与重载之间的区别

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

 

 

 

 

 

 

 

 

 

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

 

这篇关于[学习笔记] Java重写和重载的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!