您的位置:首页 > 编程语言 > C语言/C++

C++中重载和重写的方法区别(面试题)

2017-03-28 11:16 197 查看
重载,简单的说,就是函数或者方法又相同的名称,但是参数列表不相同的情形,这样的同名不同参数的函数或者方法之间相互称之为重载函数或者方法。

重写,又称为方法覆盖,子类可以继承父类的方法,而不需要重新编写相同的方法。但是有时候子类并不想原封不动的继承父类的方法而是做了一个修改,需要重写。

区别

方法的重写和重载是C++多态性的不同表现。重写是父类与子类之间多态性的一种表现,重载是一个类中多态性 的一种表现。如果在子类中定义某方法与其父类有相同的名称和参数,我们说该方法 被重写 (方法覆盖)。子类的对象使用这个方法时,将调用子类中的定义,对它而 言,父类中的定义如同被“屏蔽”了,而且如果子类的方法名和参数类型和个数都和 父类相同,那么子类的返回值类型必须和父类的相同;如果在一个类中定义了多个同 名的方法,它们或有不同的参数个数或有不同的参数类型,则称为方法的重载 。

重写必须继承,重载不用。

重写的方法名,参数数目相同,参数类型兼容,重载的方法名相同,参数列表不同。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: