写出方法覆盖(override)和方法重载(overload)区别

简介: 写出方法覆盖(override)和方法重载(overload)区别

面试题目:写出方法覆盖(override)和方法重载(overload)区别。


方法的重载:overload


a. 方法重载:在一个类中定义多个同名方法,但是形参列表不同。

b. 方法重载的要求:

I. 方法名相同

II. 形参列表不同(个数、顺序、类型)

III. 修饰符、返回值类型、异常没有要求

注意:只是形参名字不同不能构成方法的重载

public void m1(int n){}

public void m1(int i){}// 重复,不允许

c. 使用:在调用时 对象名.方法名(实参);

自动根据给定的实参匹配对应形参方法

d. 注意:根据实参匹配对应形参时,先精确匹配,精确匹配不成功,再就近

向上匹配,如果就近向上匹配不成功,则编译报错;注意避免陪陪

混淆现象

public void m1(int i,double d){}

public void m1(double d,int i){}

// 如果 mc.m1(10,10);匹配混淆

e. 好处:可以屏蔽因参数不同而导致方法实现不同及名字不同的差异;

方便外界调用

f. 应用场景:一种功能方法因形参带来的实现不同时,避免名字太多而造成调用繁琐



方法的覆盖(override)(方法的重写)


(1) 概念:子类中定义和父类中相同的方法。

(2) 方法覆盖的要求:

a. 子类的方法名、返回值类型、形参列表和父类相同

b. 子类的方法访问修饰符和父类相同或是比父类更宽

(3) 使用:子类对象名.方法名(实参);// 优先使用子类覆盖后的方法

(4) 注意:

a. 子类定义类和父类方法名相同、形参列表相同,但是返回值不同,编译

报错

b. 子类定义和父类方法名相同、形参列表不同的方法,编译通过,运行也

通过,但是此应用为特殊的方法重载


目录
相关文章
|
8月前
|
算法 安全 编译器
【C++ 关键字 override】C++ 重写关键字override(强制编译器检查该函数是否覆盖已存在的虚函数)
【C++ 关键字 override】C++ 重写关键字override(强制编译器检查该函数是否覆盖已存在的虚函数)
146 0
|
7月前
|
Java 编译器
在 Java 中,重写(Override)和重载(Overload)是两种不同的概念,用于实现多态性。它们有着不同的作用和使用场景。
在 Java 中,重写(Override)和重载(Overload)是两种不同的概念,用于实现多态性。它们有着不同的作用和使用场景。
|
Java 编译器
2. 什么是重载(Overload)和重写(Override) ?
重载(Overload): 重载是指在同一个类中可以定义多个具有相同名称但参数列表不同的方法。这些方法可以有不同的返回类型、不同的参数类型、不同的参数顺序或不同的参数个数。编译器根据方法的不同参数特征来区分它们,并根据调用时提供的参数类型和个数来确定执行哪个方法。简单来说,重载允许在同一个类中定义多个方法,以便根据不同的参数情况来执行不同的操作。
304 0
【为什么】override关键字表示该函数会覆盖基类中的虚函数
【为什么】override关键字表示该函数会覆盖基类中的虚函数
114 0
|
Java
java方法重写(Override)
1.重写的概念 重写是子类对父类(或爷爷及以上类)的允许访问的方法的实现过程进行重新编写, 返回值和形参都不能改变。即外壳不变,核心重写! 重写的好处在于子类可以根据需要,定义特定于自己的行为。 也就是说子类能够根据需要实现父类的方法。 2.实现一个简单的Demo 父类:
132 0
java方法重写(Override)
|
Java 编译器
重写,重写规则 Super 关键字的使用,重写与重载之间的区别 , @override有什么用,以及加不加@override有什么区别
重写,重写规则 Super 关键字的使用,重写与重载之间的区别 , @override有什么用,以及加不加@override有什么区别
261 0
Java——重写(Override)与重载(Overload)(概念理解+应用举例)
Java——重写(Override)与重载(Overload)(概念理解+应用举例)
Java——重写(Override)与重载(Overload)(概念理解+应用举例)
重载(overLoad)与重写(override)的区别与详解
重载(overLoad)与重写(override)的区别与详解