override与overload的区别

原创 2006年06月07日 15:24:00

重载(Overload)
重载---类中定义的方法可能有不同的版本
public book withdraw(double amt,string name)
public double withdraw(double amt)
特点:方法名必须相同
参数列表必须不相同
返回值类型可以不相同

虚拟函数

声明虚方法
使用virtual关键字 public virtual bool withdraw(...)
调用虚方法,运行时将确定调用对象是什么类的实例,并调用适当的覆写的方法。
虚方法可以有实现体

覆写(overwrite)
子类为满足自己的需要来重复定义某个方法的不同实现--覆写
通过使用关键字override来覆写
public override bool withdraw()
只有虚方法和抽象方法才能覆写

特点:

相同的方法名称
相同的参数列表
相同的返回值类型

区别
Item Override覆写 Overload重载
位置 存在于继承关系的类中 存在于同一类中
方法名 相同 相同
参数列表 相同 必须不同
返回值 相同 可以不相同

 抽象方法:
必须被派生类覆写的方法
可以看成是没有实现体的虚方法
如果类包含抽象方法,那么类就必须定义为抽象类,不论是否还包含其他一般方法
public abstract bool withdraw()

相关文章推荐

Overload和Override的区别。Overloaded的方法是否可以改变返回值的类型?

Overload是重载的意思,Override是覆盖的意思,也就是重写。 重载Overload表示同一个类中可以有多个名称相同的方法,但这些方法的参数列表各不相同(即参数个数或类型不同)。 重写O...

重载(overload),覆盖(override),隐藏(hide)的区别

重载(overload),覆盖(override),隐藏(hide)。在早期的C++书籍中,可能翻译的人不熟悉专业用语(也不能怪他们,他们不是搞计算机编程的,他们是英语专业的),常常把重载 (over...

overload与override的区别

override(重写,覆盖) 1、方法名、参数、返回值相同。 2、子类方法不能缩小父类方法的访问权限。 3、子类方法不能抛出比父类方法更多的异常(但子类方法可以不抛出异常)。 4、存...
  • T1008
  • T1008
  • 2014年07月11日 11:13
  • 245

Overload和Override的区别

override可以翻译为覆盖,从字面就可以知道,它是覆盖了一个方法并且对其重写,以求达到不同的作用。对我们来说最熟悉的覆盖就是对接口方法的实现,在接口中一般只是对方法进行了声明,而我们在实现时,就需...
  • j2eevic
  • j2eevic
  • 2011年03月09日 23:08
  • 649

黑马程序员-overload和override的区别

Class类的定义方法

Java中Overload和Override的区别

override(重写,覆盖)  1、方法名、参数、返回值相同。 2、子类方法不能缩小父类方法的访问权限。 3、子类方法不能抛出比父类方法更多的异常(但子类方法可以不抛出异常)。 4、存在于父...

重载(overload)和覆盖(override)有什么区别(终结篇)

重载(overload)和覆盖(override)是Java多态性的不同表现方式。其中,重载是在一个类中多态性的一种表现,是指在一个类中定义了多个同名的方法,它们或有不同的参数个数或有不同的参数类型,...

C++学习之多态及重载(overload),覆盖(override),隐藏(hide)的区别

C++编程语言是一款应用广泛,支持多种程序设计的计算机编程语言。我们今天就会为大家详细介绍其中C++多态性的一些基本知识,以方便大家在学习过程中对此能够有一个充分的掌握。   多态性可以简单地概括为...

转---C++学习之多态及重载(overload),覆盖(override),隐藏(hide)的区别

C++编程语言是一款应用广泛,支持多种程序设计的计算机编程语言。我们今天就会为大家详细介绍其中C++多态性的一些基本知识,以方便大家在学习过程中对此能够有一个充分的掌握。   多态性可以简单地概括为...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:override与overload的区别
举报原因:
原因补充:

(最多只允许输入30个字)