|
1
6
如果不使用反射或其他肮脏的技巧,就无法调用派生类的非虚方法。如果你想这样做,那很容易:
|
|
|
2
3
如果你控制着实例的创建过程,你可以通过继承你没有编写的类并添加接口来得到你想要的东西(不需要编写代码,编译器会将接口映射到现有的非虚拟方法)。 |
|
|
4
0
|
|
|
5
0
|
|
6
0
如果你使用的是Visual Studio 2008,你可以为基类创建一个扩展方法。在该扩展方法中,您将进行强制转换并调用子类的方法。只要您是从VS 2008内部编译的,这也应该适用于以2.0框架为目标的项目。借用其他建议的反射代码,您可以执行以下操作。..
|
|
|
7
-1
您忘记了子类方法定义中的“override”关键字。当某物被声明为“抽象”时,根据定义,它是虚拟的,因此在子类中,你需要在方法声明之前加上“override”关键字。因此,应该采取的措施如下:
|
|
|
Eris · 纯虚拟成员有什么优势吗(除了他们可能防止的人为错误)? 4 年前 |
|
|
James Nguyen · Java多态性:为什么返回错误? 8 年前 |
|
|
Alex Cristea · 如何从另一个类的数组中打印特定行 8 年前 |
|
juztcode · C语言中的静态和动态分辨率++ 8 年前 |
|
|
Hugo · 具有多态关系的活动记录获取关联模型 8 年前 |
|
|
pooya13 · 机器代码层上虚函数和条件执行的区别 8 年前 |
|
|
Nisba · C中子类类型未知的模型类/子类++ 8 年前 |
|
|
R zu · 使用多次调用的可替换方法初始化 8 年前 |