Maison > Article > développement back-end > Journal d'apprentissage C# 26 --- Type d'interface
Une interface contient la définition d'un ensemble de fonctionnalités associées qu'une classe ou une structure peut implémenter. Par exemple, l'utilisation d'une interface vous permet d'inclure des comportements provenant de plusieurs sources dans une classe. Étant donné que le langage C# ne prend pas en charge l’héritage multiple, l’héritage multiple peut être obtenu via des interfaces. Bref, l'interface ne contient que la déclaration des membres (propriétés, événements, indexeurs). La manière dont la définition d'un membre est implémentée est déterminée par sa classe dérivée.
Déclarer une interface :
L'interface est déclarée à l'aide du mot-clé interface, qui est similaire à la déclaration d'une classe. Les déclarations d'interface sont publiques par défaut et les interfaces ne peuvent pas contenir de constantes, de champs, d'opérateurs, de constructeurs d'instances, de destructeurs ou de types. Les membres de l'interface deviennent automatiquement des membres publics et ne peuvent contenir aucun modificateur d'accès. Les membres ne peuvent pas non plus être des membres statiques. Par exemple :
public interface person //Définir une interface
{ void setname();} //Déclarer une méthode
Une instance d'une interface :
using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace Test1 {//定义一个person接口 public interface person {//只声明方法 void setname(string name); void setsex(char sex); void setage(uint age); void getinformation(); } //people继承于person class people:person { private string name; private char sex; private uint age; //实现接口中的方法 public void setname(string name) { this.name = name; } public void setsex(char sex) { this.sex = sex; } public void setage(uint age) { this.age = age; } public void getinformation() { Console.WriteLine("姓名:\t"+name); Console.WriteLine("性别:\t"+sex); Console.WriteLine("年龄:\t"+age); } } //多重继承 class student :people,person { } class Program { static void Main(string[] args) { people peo = new people(); peo.setname("HC666"); peo.setsex('男'); peo.setage(18); peo.getinformation(); student stu = new student(); stu.setname("HC555"); stu.setsex('男'); stu.setage(19); stu.getinformation(); } } }
Résultat :
Mon interface semble n'avoir aucun effet Si elle est supprimée, elle peut toujours fonctionner
Si on regarde. du point de vue de la conception. Plusieurs classes doivent être écrites dans un projet. Étant donné que ces classes sont relativement complexes et que la charge de travail est relativement importante, chaque classe nécessite l'écriture d'un membre du personnel. Par exemple, le programmeur A définira la classe Dog. et le programmeur B l'écrira. Ces deux classes n'ont rien à voir l'une avec l'autre à l'origine, mais comme les utilisateurs ont besoin d'elles pour implémenter une méthode d'"appel", cela nécessite qu'elles héritent toutes de la classe. Interface IBark, afin de faciliter une gestion unifiée. L'autre est de faciliter les appels. Bien sûr, l'objectif peut être atteint sans utiliser d'interface. Mais dans ce cas, cette contrainte n'est pas si évidente s'il existe de telles classes et Duck. classes, etc., il est inévitable que quelqu'un la manque. Cette méthode est donc plus fiable et plus contraignante via l'interface
Ce qui précède est le contenu du C# Learning Diary 26---interface. tapez Pour plus de contenu connexe, veuillez faire attention au site Web PHP chinois (www.php.cn) !