C#-Ergänzungswissen (4): Vererbung

黄舟
Freigeben: 2017-02-07 15:17:08
Original
1301 Leute haben es durchsucht

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)
        {……}
    }
Nach dem Login kopieren

Neue Methodenumschreibung:

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

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)
    //    {……}
    //}
Nach dem Login kopieren

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)
        {……}
    }
Nach dem Login kopieren

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


Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!