在基类中定义了virtual方法,但在派生类中没有重写该虚方法。那么在对派生类实例的调用中,该虚方法使用的是基类定义的方法;在基类中定义了virtual方法,然后在派生类中使用override重写该方法。那么在对派生类实例的调用中,该虚方法使用的是派生重写的方法。
举一反三
- 关于虚方法实现多态,下列说法错误的是 A: 派生类必须重写基类的虚方法 B: 一般基类定义虚方法使用virtual关键字 C: 基类的虚方法派生类可以重写,也可以不重写 D: 派生类如需要重写的父类的虚方法,在派生类中将方法用关键字override标记
- 怎样定义基类虚方法,并在派生类中重写基类虚方法?
- 关于在派生类中重新实现从基类继承而来的方法,哪些说法是正确的? A: 在派生类中可以通过override重写基类的虚方法。 B: 派生类中通过override重写的方法默认也是虚方法。 C: 在派生类中不能重写基类中非虚方法。 D: 可以通过new隐藏基类中的虚方法。 E: 通过基类类型变量引用的派生类实例中,访问虚方法时,CLR会根据继承链找到该派生类重写后的方法来执行。
- 下列有关派生和继承的表述中,错误的是____。 A: 若派生类没有实现基类中的一个纯虚函数,则该派生类是抽象类 B: 在定义派生类时,可以用关键字virtual将某个基类指定为虚基类 C: 在生成派生类对象时,派生类构造函数要调用基类的构造函数 D: 派生类中定义的成员函数可以访问基类的所有成员
- C#中基类中的虚方法和抽象方法,都必须在派生类中重写。( )