Java面试题:Java方法重载和方法重写的区别

2020年12月17日09:49:17 评论 63

一、试题题面

什么是方法的重载和重写?它俩之间有什么区别?

二、题面解析

本题属于对概念类知识的考查,在解题的过程中需要先解释方法重载和重写的概念,然后介绍各自的特点,最后再分析方法重载和重写之间的区别。

Java面试题:Java方法重载和方法重写的区别

三、解析过程

1. 方法重载

构成方法重载的必要条件:定义在同一个类中,方法名相同,参数的个数、顺序、类型不同构成重载。
方法重载的目的:解决参数的个数、类型、顺序不一致,但功能一致、方法名一致的重名问题的情况。

方法重载的特点有以下几点:

(1)发生在同一个类中。
(2)方法名称相同(参数列表不同)。
(3)参数的个数、顺序、类型不同。
(4)和返回值类型以及访问权限修饰符、异常声明没有关系。
(5)重载是多态的一种表现形式。
(6)重载的精确性原则,就是赋给变量值的时候要按照变量的规则赋值。

2. 方法重写

如果从父类继承的方法不能满足子类的需求,可以对其进行改写,这个过程称为方法的重写。方法重写的目的:父类的功能实现无法满足子类的需求,需要重写。方法重写的特点:

(1)发生在具有子父类两个关系的类中。
(2)方法名称相同。
(3)参数的列表完全相同。
(4)返回值类型可以相同或者是其子类。
(5)访问权限修饰符不能够严于父类。
(6)重写是多态的必要条件。
(7)抛出的异常不能比父类的异常大。
(8)私有修饰的方法不能够被继承,就更不可能被重写。
(9)构造方法不能被重写。

四、重载和重写的区别

重载就是函数名相同,参数不同。重写就是覆盖写,一般用于子类覆盖父类的方法。

总结
override(重写)
1、方法名、参数、返回值相同。
2、子类方法不能缩小父类方法的访问权限。
3、子类方法不能抛出比父类方法更多的异常(但子类方法可以不抛出异常)。
4、存在于父类和子类之间。
5、方法被定义为final不能被重写。
overload(重载)
1、参数类型、个数、顺序至少有一个不相同。
2、不能重载只有返回值不同的方法名。
3、存在于父类和子类、同类中。

Java大学
  • 本文由 发表于 2020年12月17日09:49:17
  • 转载请务必保留本文链接:https://www.javadx.com/89.html
匿名

发表评论

匿名网友 填写信息

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: