Maison  >  Article  >  développement back-end  >  Journal d'apprentissage C# 22 --- Héritage multiple

Journal d'apprentissage C# 22 --- Héritage multiple

黄舟
黄舟original
2017-01-21 15:23:411608parcourir

L'héritage est l'un des concepts les plus importants de la programmation orientée objet. L'héritage nous permet de définir une classe basée sur une classe pour définir une autre classe. Lorsqu'une classe est dérivée d'une autre classe, la classe dérivée hérite des caractéristiques de la classe de base

L'idée d'héritage est réalisée Appartient. à (EST-UNE) relation. Par exemple, les mammifères sont des animaux (IS-A), les chiens sont des mammifères (IS-A), donc les chiens sont des animaux (IS-A).

Classe de base et classe dérivée :

  En C#, une classe dérivée hérite des membres, méthodes, propriétés, champs, événements, indicateurs d'index de sa classe de base directe mais à l'exception des fonctions constructeurs et destructeurs.

Écrivez un exemple ci-dessous.

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

Résultat

Journal dapprentissage C# 22 --- Héritage multiple

Héritage multiple :

C# ne prend pas en charge l'héritage multiple. Cependant, vous pouvez utiliser des interfaces pour implémenter l'héritage multiple. Dans l'exemple ci-dessus, nous avons ajouté une interface smallanlimal

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

Ce qui précède est le contenu du journal d'apprentissage C# 22 --- Veuillez faire attention. vers du contenu plus pertinent. Site Web PHP chinois (www.php.cn) !


Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn