Overload和Override的区别?

如题所述

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

两者不同主要体现在:

1,目的

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

2,范围

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

3, 参数 

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

4,多态性

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

5,返回类型

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

扩展资料:

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

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

参考链接:百度百科-overload   

百度百科-Override

温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2017-09-07
Overload是重载,是有相同的方法名,但参数类型或个数彼此不同
Override是重写,是在子类与父类中,子类中的方法的方法名,参数个数、类型都与父类中的完全一样,在子类中覆盖掉了父类的改方法。本回答被提问者采纳
第2个回答  推荐于2017-10-10
Override是重写:方法名称、参数个数,类型,顺序,返回值类型都是必须和父类方法一致的。它的关系是父子关系
Overload是重载:方法名称不变,其余的都是可以变更的。它的关系是同一个类,同一个方法名,不同的方法参数或返回值。
备注:它们都是是Java多态性的不同表现
第3个回答  2008-07-01
重写是子类重新编写父类已有的方法,重载只是方法所带参数的不同,包括类型和个数
第4个回答  推荐于2018-03-01
两者不同主要体现在:
1. 目的
overload用于增加程序的可读性(做法不同,但是做的同一事情)。 override用于提供其超级类已经提供的方法的特定实现。
2. 范围
overload 在相同的类范围内内执行。 override发生在两类具有继承(继承)的关系。
3. 参数
overload参数必须不同。 override参数必须相同。
4. 多态性
overload 静态多态,调用的函数在编译时被选中。 override 是运行时多态性的。
5. 返回类型
overload中可以相同或不同。但你必须改变参数。 override必须是相同的或协变的。本回答被网友采纳