在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);四是,可以声明新的异常;五是,可以在同一个类内重载,也可在子类中重载。其中,名列前茅条是重载规则中最本质也是最重要的一条规则。
50万+团队都在用的项目协作工具一个工具满足团队所需:任务、项目、文档、IM、目标、 日历、甘特图、工时、审批以及更多,让工作更简单智能化研发管理工具PingCode 是简单易用的新一代研发管理平台,让研发管理自动化、数据化、智能化,帮助企业提升研发效能