【发布时间】:2015-10-14 17:12:14
【问题描述】:
假设我有一个名为 Enemy 的基类和一个名为 Ogre 的派生类。
这两种方式创建实例有什么区别:
Enemy newOgre = new Ogre();
Ogre newOgre = new Ogre();
【问题讨论】:
-
最好使用
IEnemy接口而不是Enemy基类。如果你不会创建新的 Enemies 作为基类,接口会更合适 -
这个创建没有太大的区别,除了引用Enemy类型的新对象将只提供基类接口。
-
您没有以不同的方式创建它们。您正在对相同创建的对象执行不同的操作(即以不同的方式存储它们)。
-
你想知道什么?它是如何工作的(例如,如何找到虚拟方法——搜索 v-table 查找)?或者如何使用(搜索继承)?