如果一个类实例化它将创建一个对象。内存将分配给该实例。
如果Interface实例化会发生什么情况?
接口是否有构造函数?它创建一个接口object.does它alllocate内存接口对象如果接口是由类实现的,接口是否会创建对象?
interface IInteface {}
class Test : IInterface{}
IInterface ex1 = new Test();
什么上面一行将创建?
如果一个类实例化它将创建一个对象。内存将分配给该实例。
如果Interface实例化会发生什么情况?
接口是否有构造函数?它创建一个接口object.does它alllocate内存接口对象如果接口是由类实现的,接口是否会创建对象?
interface IInteface {}
class Test : IInterface{}
IInterface ex1 = new Test();
什么上面一行将创建?
接口没有构造函数,不能自行创建。
将对象分配给变量(包括接口类型的变量)不会创建新对象,它只是对同一对象的另一个引用。
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
的相同单个实例和对象
接口是抽象的概念,不能被实例化。它们用来定义实施课程的合同。
然后,您可以创建实现接口(通常与new
)具体类的实例,并使用接口参考指向该实例。
措辞很好! +1 – Enigmativity
如果接口没有创建对象。我们怎么能通过接口指向另一个类对象呢? –
是否可以通过接口类型引用变量访问类属性?...因为接口没有变量。 –
您是否试过此代码? –
我们如何使用IInterface创建一个参考? –
您正在讨论的行会创建“语法错误” - C#中没有'New'。附注:编辑后,你的示例与帖子的文本/标题无关 - 你的代码只是创建一个对象,而post则讨论一些不存在的“创建接口对象”的概念。 –