2017-02-08 58 views
-2

在下面的示例中,我创建了三个对象,我想知道三个对象之间有什么区别,它是如何工作的以及要使用哪个对象第三个对象有错误,为什么它显示错误?在C#中,派生对象的基类参考点更好或派生类自己的对象更好

class Base 
{ 

} 
class Derived : Base 
{ 

} 
class Main 
{ 
    Base base = new Derived(); 
    Derived derived = new Derived(); 
    Derived derived_1 = new Base(); 
} 
+0

只是谷歌C#继承,你会发现无限的答案 – ehh

回答

0

继承是您在上述代码中所做的事情。派生类的类的基类保持对象的

Base base = new Derived() : 

对象,其中,当你调用它们在派生类中重写方法,它会叫你的派生类的方法。如果方法不重写,它会调用基类的方法

Derived derived = new Derived() : 

派生类对象包含派生类型的对象,其中调用的方法就可以了,它会简单地调用派生类型的方法。它不会检查任何重写的方法。

Derived derived_1 = new Base() : 

由于子类不能保存基类的对象,所以不会编译。

0
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