2013-10-23 2 views
6

Zugriff Basisklasse A-Funktion von abgeleiteten Klasse B-Objekt in C# Gibt es eine Möglichkeit, ich kann Funktion (Summe) von A-Klasse von B-Klasse-Objekt zugreifen und Ausgabe erhalten 10.?Zugriff Basisklasse A-Funktion von Laufwerk Klasse B-Objekt in C#

Class A 
{ 
    public int Sum(int i) 
    { 
     return i+3; 
    } 
} 

Class B:A 
{ 
    public int Sum(int i) 
    { 
      return i+4; 
    } 
} 

B objectB=new B(); 

int result=objectB.Sum(7); 

output:11 
+0

Soll die Auswahl der auszuführenden 'Sum'-Methode bedingt sein oder sollte' A's 'sum'-Methode immer mit' B' aufgerufen werden? – NotMe

Antwort

8

Deklarieren Sie eine A Variable statt B, während immer noch B ‚s Konstruktor.

A objectB = new B(); 
int result=objectB.Sum(7); 

Dies wird A Methode verwenden. Dies gilt nur, weil die Methode schattiert ist und nicht überschrieben wird.

Sie erhalten auch eine Compiler-Warnung für Ihre Methode Sum in B und Sie können es als public new int Sum(int i) definieren, um zu signalisieren, dass das Ausblenden beabsichtigt ist.

+0

Sie haben eine gute Antwort vielen Dank –

+0

können Sie mich wissen lassen, wie kann ich meine Oops Konzept stark machen? Danke –

+0

Ich habe keine Zaubertricks zu bieten außer üben und lesen darüber. Es wird mit Erfahrung kommen. Zögern Sie nicht, etwas über die Grundlagen zu lernen. Am Anfang magst du denken, dass du diese Dinge bereits kennst, aber du wirst grundlegende Konzepte in deinem Verstand festigen, die dir helfen werden, kompliziertere zu verstehen. – Vache

Verwandte Themen