[英]In C# base class reference point to derived object is better or derived class own object is better
在下面的示例中,我創建了三個對象,我想知道三個對象之間有什么區別,它是如何工作的以及使用哪個對象,並且第三個對象中有錯誤,那么為什么它顯示錯誤?
class Base
{
}
class Derived : Base
{
}
class Main
{
Base base = new Derived();
Derived derived = new Derived();
Derived derived_1 = new Base();
}
繼承是你在上面的代碼中所做的。
Base base = new Derived() :
基類類型的對象保存派生類的對象,其中當您調用派生類中覆蓋的方法時,它將調用派生類方法。 如果該方法未被覆蓋,它將調用基類方法
Derived derived = new Derived() :
派生類對象持有派生類型的對象,您在其中調用它的方法,它只會調用派生類型的方法。 它不會檢查任何重寫的方法。
Derived derived_1 = new Base() :
這不會編譯,因為子類不能保存基類的對象。
Base base = new Derived();//Here you are referencing the derived object with base reference type, so only base members will be accessed using the base reference
Derived derived = new Derived();//Here you can access members in base and derived
Derived derived_1 = new Base();//This is a syntax error because you are using a derived reference for the base object(you are referencing a general object with a specific reference you need conversion here )
檢查此鏈接: https : //msdn.microsoft.com/en-us/library/ms173149.aspx
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.