admin 管理员组

文章数量: 1086019


2024年3月21日发(作者:matlab产品可以后期安装吗)

方法重载与覆盖的区别

方法重载与覆盖的区别

方法重载与覆盖的区别【一】

方法覆盖(重写)和方法重载具有以下相同点:

·都要求方法同名。

·都可以用于抽象方法和非抽象方法之间。

方法覆盖和方法重载具有以下不同点:

·方法覆盖要求参数签名必须一致,而方法重载要求参数签名必须不一致。

· 方法覆盖要求返回类型必须一致,而方法重载对此不做限制。

·方法覆盖只能用于子类覆盖父类的方法,方法重载用于同一个类的所有方法(包括从

父类中继承而来的方法)。

·方法覆盖对方法的访问权限和抛出的异常有特殊的要求,而方法重载在这方面没有

任何限制。

·父类的一个方法只能被子类覆盖一次,而一个方法在所在的类中可以被重载多次

方法重载与覆盖的区别【二】

一、重载和覆盖

多态性也是面向对象方法的一个重要特性.多态性是指在在程序中出现的"重名"现象,

即在一个程序中相同的名字可以表示不同的实现.

在JAVA中,多态性主要表现在如下两个方面:

(1)方法重载.通常指在同一个类中,相同的方法名对应着不同的方法实现,但是方法的参

数不同.

(2)成员覆盖.通常指在不同类(父类和子类)中,允许有相同的变量名,但是数据类型不同;

也允许有相同的方法名,但是对应的方法实现不同.

在重载的情况下,同一类中具有相同的名字的方法.如何选择它的方法体呢?不能使用类

名来区分,通常采用不同的方法形参表,区分重载要求形参在类型,个数和顺序的不同,在定义

重载方法时,应在方法的形参的类型,个数和顺序有所不同,以便在选择时能够区别开来.

在覆盖的情况下,同名的方法存在于不同的类中,在调用方法只要指明其方法所归属的

类名就可以了.


本文标签: 方法 覆盖 重载 要求 产品