Heim  >  Artikel  >  Backend-Entwicklung  >  C#-Ergänzungswissen (4): Vererbung

C#-Ergänzungswissen (4): Vererbung

黄舟
黄舟Original
2017-02-07 15:17:081346Durchsuche

Methodenumschreibung:

Die Basisklassenmethode identifiziert das virtuelle Schlüsselwort, und die Methodenumschreibung in der Unterklasse (geerbte Klasse) identifiziert das Override-Schlüsselwort.

Die überschriebene Methode muss denselben Typ wie die Basisklasse haben, z. B. Methodenname, Rückgabe und akzeptierte Parameter.

  public class Class1
    {
        public virtual void show(int i)
        {……}
    }
    public class Class2:Class1
    {
        public override void show(int a)
        {……}
    }

Neue Methodenumschreibung:

    public class Class1
    {
        protected virtual void show(int i)
        {……}
    }
    public class Class2:Class1
    {
        public new int show(int a)
        {……}
    }

Neue Anweisung definiert ihre eigene Methode mit demselben Namen. Der Rückgabetyp und der Zugriffstyp können sich von der gleichnamigen Methode der Basisklasse unterscheiden.

Wenn sich die akzeptierten Parameter von der Basisklassenmethode mit demselben Namen unterscheiden, ist das neue Schlüsselwort redundant, was einem allgemeinen Umschreiben entspricht (die Basisklasse verfügt nicht über dieselbe Methode und es gibt keine). dieselbe versteckte Methode).

override schreibt den Methodenkörper der Basisklassenmethode (versteckte Methode) neu und new schreibt die Basisklassenmethode mit demselben Namen neu (und empfängt dieselben Parameter).

Vererbung beenden:

Vererbung beenden Flag versiegelt. Der folgende Code kompiliert Fehler: Klasse2 kann die geschlossene Klasse Klasse1 nicht erben

public sealed class Class1
    {
        public virtual void show(int i)
        {……}
    }
    //public class Class2:Class1
    //{
    //    public override void show(int a)
    //    {……}
    //}

und ruft den Basisklassenkonstruktor auf:

Der Compiler ruft zuerst den Basisklassenkonstruktor auf und ruft dann die geerbte Klasse auf Konstrukteur.

  public class Class1
    {
        public Class1(int i , string j)
        {……}
    }
    public class Class2:Class1
    {
        public Class2(int i,string j,object obj):base(i,j)
        {……}
    }

Das Obige ist das kleine Wissen über C# (4): Vererbungsinhalte. Weitere verwandte Inhalte finden Sie auf der chinesischen PHP-Website (www.php.cn)!


Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn