Heim > Artikel > Backend-Entwicklung > C#-Lerntagebuch 22 – Mehrfachvererbung
Vererbung ist eines der wichtigsten Konzepte in der objektorientierten Programmierung. Durch Vererbung können wir eine Klasse basierend auf einer Klasse definieren, um eine andere Klasse zu definieren. Wenn eine Klasse von einer anderen Klasse abgeleitet wird, erbt die abgeleitete Klasse die Merkmale von der Basisklasse
Die Idee der Vererbung wird durch realisiert (IS-A)-Beziehung. Beispielsweise sind Säugetiere (IS-A)-Tiere, Hunde sind (IS-A)-Säugetiere, also sind Hunde (IS-A)-Tiere.
Basisklasse und abgeleitete Klasse:
In C# erbt eine abgeleitete Klasse Mitglieder, Methoden, Eigenschaften, Felder, Ereignisse und Indexindikatoren von ihrer direkten Basisklasse, jedoch mit Ausnahme der Konstruktor- und Destruktorfunktionen.
Schreiben Sie unten ein Beispiel.
using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace Test { class Anlimal //定义一个基类 { protected int foot = 4; protected double weight = 22.4; protected void say(string type, string call) { Console.WriteLine("类别:{0},叫声:{1} ",type,call); } } //Dog 继承Anlimal class Dog:Anlimal { static void Main(string[] args) { Dog dog = new Dog(); int foot = dog.foot; double weight = dog.weight; Console.WriteLine("dog foot: {0}\ndog weight:{1}",foot,weight); dog.say("狗", "汪汪"); } } }
Ergebnis
Mehrfachvererbung:
C# unterstützt keine Mehrfachvererbung. Sie können jedoch Schnittstellen verwenden, um Mehrfachvererbung zu implementieren. Im obigen Beispiel haben wir eine Smallanlimal-Schnittstelle hinzugefügt. Das Obige ist der Inhalt von C# Learning Diary 22---Mehrfachvererbung zu weiteren verwandten Inhalten. PHP-chinesische Website (www.php.cn)!
using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace Test { class Anlimal //定义一个基类 { protected int foot = 4; protected double weight = 22.4; protected void say(string type, string call) { Console.WriteLine("类别:{0},叫声:{1} ",type,call); } } public interface smallanlimal //添加一个接口 接口只声明方法在子类中实现 { protected void hight(double hight); } //Dog 继承Anlimal class Dog:Anlimal,smallanlimal { public void hight(double hight) //实现接口 { Console.WriteLine("Hight: {0}",hight); } static void Main(string[] args) { Dog dog = new Dog(); int foot = dog.foot; double weight = dog.weight; dog.hight(23.23); Console.WriteLine("dog foot: {0}\ndog weight:{1}",foot,weight); dog.say("狗", "汪汪"); } } }