单选题

采用面向对象程序设计语言C++/Java进行系统实现时,定义类S及其子类D。若类S中已经定义了一个虚方法intfun(inta,intb),则方法(     )不能同时在类S中。D中定义方法intfun(inta,intb),这一现象称为intfun(intx,inty)。

【正确答案】 A
【答案解析】

在同一类中是不能定义两个名字相同、参数个数和类型都相同的函数的,否则就是重复定义,但是在类的继承层次结构中,在不同的层次中可以出现名字相同、参数个数和类型都相同而功能不同的函数。虚函数的作用是允许在派生类中重新定义与基类同名的函数,并且可以通过基类指针或引用来访问基类和派生类中的同名函数。
重载是在同一类中允许同时存在一个以上的同名方法,只要这些方法的参数个数或类型不同即可,而重置(覆盖)是子类重新定义父类中已经定义的方法,即子类重写父类方法。