如果一个类实例化它将创建一个object.Memory将分配给该实例。
如果接口被证实,会发生什么?
接口是否有构造函数?它是否创建了一个接口对象。它将内存分配给接口对象
interface IInteface {}
class Test : IInterface{}
IInterface ex1 = new Test();
以上行会创建什么?
答案 0 :(得分:4)
接口是无法实例化的抽象概念。它们用于定义实现要实现的类的合同。
然后,您可以创建实现该接口的具体类的实例(通常使用new
),并使用接口引用指向该实例。
答案 1 :(得分:1)
接口没有构造函数,不能自己创建。
将对象分配给变量(包括接口类型的变量)不会创建新对象,它只是对同一对象的另一个引用。
class DerivedWithInterface: Base, IEnumerable {}
现在您可以创建DerivedWithInterface
类的实例并分配给任何基类/接口的变量,但只有new
会创建一个对象:
DerivedWithInterface item = new DerivedWithInterface();
IEnumerable asEnumerable = item; // asEnumerable is the same object as create before
Base asBase = item;
现在你可以将演员表转换回原始对象,但仍然只有一个(或者你new
编辑的那个):
IEnumerable asEnumerableItem = new DerivedWithInterface();
DerivedWithInterface itemViaCast = (DerivedWithInterface)asEnumerableItem;
asEnumerableItem
和itemViaCast
都指的是asEnumerableItem