抽象基类(ABC)可以拥有数据来支持继承它的类。 然而,鉴于不可能实例化 ABC 的对象,在我们有许多派生类对象的情况下,编译器如何处理这些数据 继承ABC。数据是否与派生类对象相关联?
如果您谈论的是静态数据,那么该数据将保持与基类的关联。无论有多少个不同的类派生自该数据,内存中仍然只会有一个该数据的实例。
非静态数据将与该类的每个实例相关联。如果您创建该类的 5 个实例,则内存中将存在该数据的 5 个实例,每个实例只能通过其关联的实例进行访问。
是的。
编译器只能接受已用派生的实体类实例化的继承类型。这是因为
public void RunInstantiate()
{
IAbstract abc;
abc = new Implement();
}
abc
将始终指向真实对象(类型为 Implement
)。