java中overwrite和override有什么区别

小编 1092

在java中,overwrite和override有以下区别:1.概念不同;2.性质不同;3.重写父类方法时的调用不同。概念不同在于,overwrite意思是“方法重写”,指当前类的同名方法;而override意思是“方法覆盖”,指子类继承了父类的同名无参函数。

1.概念不同

overwrite是“方法重写”的意思,指当前类的同名方法。通过方法的重写,一个类可以有多个具有相同名字的方法,由传递给它们不同的个数和类型的参数来决定使用哪种方法。因此,重写的名称是当前类中的同名函数,不是父类中的函数名。

override是“方法覆盖”的意思,指子类继承了父类的同名无参函数。当子类从父类继承了一个无参函数,而又定义了一个同样的无参函数,则子类定义的方法覆盖父类的方法,称为覆盖。

2.性质不同

overwrite是一个概念,子类方法与基类或者接口方法同名,我们就称为overwrite。

override是一个关键词,是指可以重写(overwrite)基类或者接口的方法。

3.重写父类方法时的调用不同

Overwrite和override均用于重写父类方法,但两者的区别在于:Overwrite重写父类方法时,如果父类方法被抛弃,就不可以再调用;而override可以借用super()调用父类方法。

延伸阅读

Java中的Overload是什么

Java中的Overload是“重载”的意思,指多个方法具有相同的名字,但有不同的参数列表。重载是一种静态多态,根据参数列表进行优异匹配,做静态类型检查,在编译阶段时决定要具体执行哪个方法。

Overload(重载)的好处在于,方便client(客户端)调用,client可用不同的参数列表,调用同样的函数。比如想要定义加法的方法,让它可以计算不同类型的数之和,有不同类型的返回值。如果没有重载机制,那么想要定义两个具有相同/相似功能的方法,必须用不同函数名加以区分,如add1,add2,去定义和记住这些方法名字,对开发者和使用者都是一种负担。

重载有五条重要规则:一是,必须有不同的参数列表;二是,可以有相同/不同的返回值类型;三是,可以有相同/不同的访问权限(public/private/protected);四是,可以声明新的异常;五是,可以在同一个类内重载,也可在子类中重载。其中,名列前茅条是重载规则中最本质也是最重要的一条规则。

回复

我来回复
  • 暂无回复内容

注册PingCode 在线客服
站长微信
站长微信
电话联系

400-800-1024

工作日9:30-21:00在线

分享本页
返回顶部