JAVA和Nginx 教程大全

网站首页 > 精选教程 正文

大数据编程入门:Java Override&Overload

wys521 2024-11-09 15:05:18 精选教程 20 ℃ 0 评论

Override和Overload翻译成中文分别是重写和重载,是Java面向对象中两种方法,今天小编将为大家带来大数据编程入门:Java Override&Overload这篇文章为大家介绍重写和重载的使用方法以及两者之间的区别。

一、重写(Override)

重写就是子类对父类所允许访问的方法的实现过程进行重新编写,反问值和形参不能改变,即外壳不变,核心重写。

重写的好处在于子类可以根据自己的需求,定义自己的行为,即能够根据自己的需要实现父类的方法。

重写方法不能引发新的检查异常或比重写方法的声明更宽泛的异常。例如:父类的一个方法声明了一个检查异常IOException,但是重写这个方法时,不能抛出异常,因为Exception是IOException的父类,只能抛出IOException的子类的异常。

在面向对象中,重写意味着可以重新编写任何现有方法,示例如下:

运行结果:

在上面的这段代码中可以看到,即使b是Animal类型,但是它运行的是Dog类的move方法。

这是因为在编译时,只需检查参数的引用类型。

但是,在运行时,Java虚拟机(JVM)指定对象的类型并运行其方法。

因此,在上面的示例中,之所以能够成功编译,是因为在animal类中有一个move方法。但是,在运行时,它运行特定对象的方法。

思考下面的这段代码:

运行结果:

程序将抛出编译错误,因为b的引用类型Animal没有bark方法。

二、方法的重写规则

A. 参数列表必须与重写方法的参数列表完全相同。

B. 重写方法的返回类型和返回类型可以不同,但它们必须从父类的返回值派生(java5和早期版本具有相同的返回类型,java7和更高版本可以不同)。

C. 访问权限不能低于父类中重写方法的访问权限。例如,如果父类的方法被声明为public,那么在子类中重写该方法就不能被声明为protected。

D. 父类的成员方法只能由其子类重写。

E. 不能重写声明为final的方法。

F. 不能重写声明为static的方法,但可以再次声明。

G. 如果子类和父类在同一个包中,则子类可以重写父类的所有方法,但声明为private和final的方法除外。

H. 如果子类和父类不在同一个包中,则子类只能重写声明为public并受父类保护的非final方法。

I. 重写的方法可以引发任何非强制异常,而不管重写的方法是否引发异常。但是,重写的方法不能抛出新的强制异常,也不能抛出比重写的方法声明的异常更广泛的强制异常,反之亦然。

J. 无法重写构造方法。

K. 如果不能继承类,则不能重写其方法。

三、Super关键字的使用

当您需要在子类中调用父类的重写方法时,请使用super关键字。

运行结果:

四、重载(Overload)

重载在具有相同方法名但不同参数的类中。返回类型可以相同也可以不同。

每个重载方法(或构造函数)都必须具有唯一的参数类型列表。

最常见的地方是构造函数过载。

过载规则:

A. 重载方法必须更改参数列表(参数的数目或类型不同);

B. 重载方法可以改变返回类型;

C. 重载方法可以更改访问修饰符;

D. 重载方法可以声明新的或更广泛的检查异常;

E. 方法可以在同一类或子类中重载。

F. 返回值类型不能用作重载函数的区分标准。

示例:

五、重写与重载之间的区别

区别点

重载方法

重写方法

参数列表

必须修改

不能修改

返回类型

可以修改

不能修改

异常

可以修改

可以减少或删除,不能抛出新的或者更广的异常

访问

可以修改

不能做更严格的限制(可以降低限制)

总结

方法的重写(Override)和重载(Overloading)是Java多态性的不同表现。重写是父类和子类之间多态性的表现。超载可以理解为多态性的具体表现。

A. 方法重载是在一个类中定义的,该类中多个方法具有相同的名称,但其参数的数量不同或数字相同,但类型和顺序不同。它称为方法的重载(Overloading)。

B. 方法重写是一种方法,子类中方法的名称与父类中的方法名称相同,参数的数量与类型相同,返回值相同。它被称为重写(Override)。

C. 方法重载是类的多态性,方法重写是子类和父类的一种多态性表现。




以上就是关于大数据编程入门:Java Override&Overload的全部内容了,希望这篇文章能够帮助到大家~

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表