簡體   English   中英

在C#中基類引用指向派生對象更好還是派生類自己的對象更好

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM