在C#中,我們經常使用的一個初始化的語法,一個基類的實例,其繼承子類初始化是這樣的:將派生類的對象存儲爲基類變量。什麼是OOP術語?
Control BTN = new Button();
現在我的問題就是這樣,這是什麼樣的正式名稱初始化?
在C#中,我們經常使用的一個初始化的語法,一個基類的實例,其繼承子類初始化是這樣的:將派生類的對象存儲爲基類變量。什麼是OOP術語?
Control BTN = new Button();
現在我的問題就是這樣,這是什麼樣的正式名稱初始化?
根據C#規範,它被稱爲簡單分配與隱式參考轉換。
7.16.1簡單賦值
在一個簡單的賦值中,右操作數必須是一種類型的隱式轉換爲左操作數的類型的表達式。
...
形式X = Y的簡單賦值的運行時處理包括以下步驟:
- ...
- 計算y,並且如果通過隱式轉換(第6.1節)轉換爲x的類型。
6.1.6隱式引用轉換
隱式引用轉換是:
- ...
- 從任意類型S到任何類型T,提供S來源於T.
這不是基類實例初始化。這是繼承的類實例初始化並且通過基類類型的變量引用這個實例。你可以稱它爲assignment value to variable
。沒有特殊的名字。
我能想到的最簡潔的術語是多態實例化或多態初始化。這似乎抓住了必要的元素,而不寫一整句話。雖然沒有意識到正式的術語。
我不認爲有一個名稱...這只是一個應用程序的繼承。 –
@Thomas,指派一個'Derived'引用到'Base'引用與繼承IHMO有關[多態性](http://www.cplusplus.com/doc/tutorial/polymorphism/)更多。 –
@FrédéricHamidi,upvote,因爲當我輸入我的答案時,你顯然打敗了我對多態的引用。 –