采用面向对象程序设计语言C++/Java进行系统实现时,定义类S及其子类D。 D中定义方法int fun(int a,int b),这一现象称为_____________。

admin2019-05-11  33

问题 采用面向对象程序设计语言C++/Java进行系统实现时,定义类S及其子类D。
D中定义方法int fun(int a,int b),这一现象称为_____________。

选项 A、覆盖/重置
B、封装
C、重载/过载
D、多态

答案A

解析 本题考查面向对象程序设计基础知识。
    在使用面向对象程序设计语言(如C++/Java)进行程序设计时,可以采用方法重载/过载,使得在定义一个类时,类中可以定义多个具有相同名称且参数列表不同的方法。参数列表不同包括参数的个数不同、参数的类型不同以及参数类型的顺序不同。即应该满足使用唯一的参数类型列表来区分方法重载/过载,不能具有同名且完全相同的参数类型列表的方法,返回值类型不同以及参数名称的不同均不满足方法重载/过载。
    如在类S中定义了虚/抽象方法int add(int a,int b),与之可以构成方法重载的方法如add(int,int,int)、add(int,float),。如果S中定义add(int,float)方法,则与其可以构成重载的方法还包括add(float,int),。与add(int,int)不可以同时定义在S中的不满足重载的同名方法如int add(int x,int y)或double add(int a,int b)。
    在方法重载/过载时,还需要注意方法的参数类型向上提升,即一个尺寸较小的数据类型转换为尺寸较大的数据类型,如float与double。即在方法调用时,如果有严格匹配的数据类型列表的方法,则调用;如果没有严格匹配,而有通过类型向上转换后匹配的方法,则调用经过类型提升之后而匹配的方法。如一个类中定义了add(int,double),而没有定义add(int,float),那么对于调用add(100,20.5f),就会匹配add(int,double)方法。如果既定义了add(int,double),又定义了add(int,float),那么对于调用add(100,20.5f),就会匹配add(int,float)。
    在父类中定义的虚/抽象方法,使用继承定义子类,由子类实现虚/抽象方法或者进一步再由其子类实现。子类继承父类中的所有方法,对虚/抽象方法加以实现,也可以补充定义自己特有的方法。在定义自己特有的方法时,也需要满足方法重载的条件。在继承关系的保证下,子类继承了所有父类中的方法,子类实现或重写父类中定义的方法,称为方法的覆盖/重置。
转载请注明原文地址:https://jikaoti.com/ti/q1L7FFFM
0

最新回复(0)