写出方法覆盖(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. 子类定义和父类方法名相同、形参列表不同的方法,编译通过,运行也

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


目录
相关文章
|
2月前
|
Java PHP 数据安全/隐私保护
PHP 面向对象,构造函数,析构函数,继承,方法的重写,接口抽象类,static,final,this,parent,self的异同和作用
本文详细介绍了PHP面向对象编程的一系列核心概念和用法,包括构造函数、析构函数、继承、方法重写、访问控制、接口、抽象类、静态成员、final关键字、以及this、self、parent这三个关键字的异同和作用。通过具体示例代码,展示了如何在PHP中使用这些面向对象的特性,以及它们在实际开发中的应用。
PHP 面向对象,构造函数,析构函数,继承,方法的重写,接口抽象类,static,final,this,parent,self的异同和作用
|
6月前
|
算法 安全 编译器
【C++ 关键字 override】C++ 重写关键字override(强制编译器检查该函数是否覆盖已存在的虚函数)
【C++ 关键字 override】C++ 重写关键字override(强制编译器检查该函数是否覆盖已存在的虚函数)
96 0
|
5月前
|
Java 编译器
在 Java 中,重写(Override)和重载(Overload)是两种不同的概念,用于实现多态性。它们有着不同的作用和使用场景。
在 Java 中,重写(Override)和重载(Overload)是两种不同的概念,用于实现多态性。它们有着不同的作用和使用场景。
|
6月前
|
Java
Java重写(Override)与重载(Overload)
Java重写(Override)与重载(Overload)
|
6月前
|
Java 编译器
【JAVA】关于重写(Override)与重载(Overload)
【JAVA】关于重写(Override)与重载(Overload)
108 0
|
12月前
|
Java 编译器
【继承顺序和方式,子类构造方法,protected 关键字,final 关键字】
【继承顺序和方式,子类构造方法,protected 关键字,final 关键字】
42 0
|
Java 编译器 程序员
Java 的重载(overload)和重写(override)
重载和重写都是面向对象编程中的概念,但我们或许还听说过一种叫做覆写(overwrite)的概念。C++ 是拥有这个概念的,Java 只有 overload 和 override,Python 只有隐式的 overload 和 override,没有 overwrite 的概念。在重载(overload)、重写(override)和覆写(overwrite)中,我们一般对前面两个比较熟悉,对最后一个会略微陌生一些。
185 1
|
Java 编译器
2. 什么是重载(Overload)和重写(Override) ?
重载(Overload): 重载是指在同一个类中可以定义多个具有相同名称但参数列表不同的方法。这些方法可以有不同的返回类型、不同的参数类型、不同的参数顺序或不同的参数个数。编译器根据方法的不同参数特征来区分它们,并根据调用时提供的参数类型和个数来确定执行哪个方法。简单来说,重载允许在同一个类中定义多个方法,以便根据不同的参数情况来执行不同的操作。
283 0
【为什么】override关键字表示该函数会覆盖基类中的虚函数
【为什么】override关键字表示该函数会覆盖基类中的虚函数
106 0