所有栏目

overload和override的区别?

作者:新生考研

Overload是重载的意思,表示在同一个类中,允许存在一个以上的同名函数,只要他们的参数个数或者参数类型不同即可。Override是覆盖的意思,也就是重写,它与返回值类型无关,只看参数列表。

相关介绍

两者不同主要体现在:

目的:overload用于增加程序的可读性(做法不同,但是做的同一事情)。 override用于提供其超级类已经提供的方法的特定实现。

范围:overload 在相同的类范围内内执行。 override发生在两类具有继承(继承)的关系。

参数:overload参数必须不同。 override参数必须相同。

多态性:overload 静态多态,调用的函数在编译时被选中。 override 是运行时多态性的。

返回类型:overload中可以相同或不同。但你必须改变参数。 override必须是相同的或协变的。

重写Override表示子类中的方法可以与父类中的某个方法的名称和参数完全相同,通过子类创建的实例对象调用这个方法时,将调用子类中定义的方法,这相当于把父类中定义的那个完全相同的方法给覆盖掉了,这也是面向对象编程的多态的一种表现。子类覆盖父类方法时只能抛出父类的异常或者异常的子类或者父类异常的子集,因为子类可以解决父类的一些问题,但不能比父类有更多的问题。

重载overload的特点就是与返回值无关,只看参数列表,所以重载的方法是可以改变返回值类型的。所以,如果两个方法的参数列表完全一样,是不能通过让他们的返回值类型不同来实现重载的。

热点导航
教育资讯 知道问答 公考资讯 司法考试 建筑知识 工作范文 大学排名 报考专业 学习方法 句子美文 秒知回答 作业解答 精选答案 知途问学