Heim  >  Artikel  >  Backend-Entwicklung  >  C#-Lerntagebuch 22 – Mehrfachvererbung

C#-Lerntagebuch 22 – Mehrfachvererbung

黄舟
黄舟Original
2017-01-21 15:23:411605Durchsuche

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

C#-Lerntagebuch 22 – Mehrfachvererbung

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("狗", "汪汪");  
        }  
    }  
}

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