如果一個類實例化它將創建一個對象。內存將分配給該實例。
如果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則討論一些不存在的「創建接口對象」的概念。 –