下列是关于继承的说法,正确的是______。

admin2019-06-12  30

问题 下列是关于继承的说法,正确的是______。

选项 A、子类继承父类,子类就拥有了父类的全部成员,包括基类的构造函数和析构函数
B、当子类继承父类后,子类可以访问父类的全部成员
C、抽象类不能被继承
D、派生类可能含有与基类同名的数据成员或同名同参数的成员函数,因此可能产生二义性。C++采用将当前类作为默认作用域的方法来消除二义性。若要在派生类中访问基类的成员,则必须使用作用域运算符“::”指定所使用的成员的类名

答案D

解析 当子类继承父类后,子类可以访问父类中除私有成员外的全部成员。父类的构造函数和析构函数是不能被子类继承的。在C++中,当子类有多个基类时,调用基类构造函数的格式为:
   <派生类名>::<派生类名>(参数表):<基类名1><参数表1>,<基类名2>
   <参数表2>…,
   {
         派生类构造函数体;
   }
   在Java中,在创建子类对象时若希望对父类中的成员变量进行初始化,就要在于类构造方法中利用super()调用父类的构造方法,并且必须将这条语句作为子类构造方法中的第一条语句。
   抽象类是含有抽象函数或抽象方法的类,它不能被实例化,但是可以被继承。实际上,抽象类主要就是用来派生子类。
   当派生类含有与基类同名的数据成员或同名同参数的成员函数时,可能产生二义性。 C++采用将当前类作为默认作用域的方法来消除二义性。若要在派生类中访问基类的成员,则必须使用作用域运算符“::”指定所使用的成员的类名。
转载请注明原文地址:https://kaotiyun.com/show/9dRZ777K
0

最新回复(0)