2017-02-08 4 views
-2

Im folgenden Beispiel habe ich drei Objekt erstellt, ich möchte wissen, was ist der Unterschied zwischen drei Objekt, wie es funktioniert und welche zu verwenden und es gibt einen Fehler im dritten Objekt, warum zeigt es Fehler?In C# Basisklasse Referenzpunkt zu abgeleiteten Objekt ist besser oder abgeleitete Klasse eigenes Objekt ist besser

class Base 
{ 

} 
class Derived : Base 
{ 

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

nur Google C# Vererbung, werden Sie unbegrenzte Antworten finden – ehh

Antwort

0

Vererbung ist, was Sie in obigem Code tun.

Base base = new Derived() : 

Objekt vom Typ Basisklasse halten Objekt der abgeleiteten Klasse in dem, wenn Sie die Methode aufrufen, die in der abgeleiteten Klasse überschrieben werden, wird es Ihre abgeleitete Klasse Methode aufrufen. Wenn die Methode nicht außer Kraft gesetzt wird, wird es Basis nennen Klassenmethode

Derived derived = new Derived() : 

abgeleiteten Klasse Objekt Objekt der abgeleiteten Typs hält, in dem Sie Methode nennen, wird es einfach Abgeleitet Typ-Methode aufrufen. Es wird keine überschriebene Methode überprüft.

Derived derived_1 = new Base() : 

Dies wird nicht kompiliert, da untergeordnete Klasse Objekt der Basisklasse nicht halten kann.

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) 

Check this link: https://msdn.microsoft.com/en-us/library/ms173149.aspx

Verwandte Themen