当前位置:文档之家› 类与接口的关系理解

类与接口的关系理解

(类是对所有事物公共的概念进行抽象的描述。

)类描述了一系列在概念上有相同含义的对象,并为这些对象统一定义了编程语言上的属性和方法。

对象就是一个类的实例(是某一类的具体化实例),每一个类都是具有某些共同特征的对象的抽象。

public class Car{public int number; //编号public string color; //颜色private string brand; //厂家}析构函数(前面加一个~符号):class Program{~Program() //析?构1函¡¥数ºy{Console.WriteLine("析?构1函¡¥数ºy自Á?动¡¥调Ì¡Â用®?"); //输º?出?一°?个?字Á?符¤?串ä?}static void Main(string[] args){Program program = new Program(); //实º¦Ì例¤y化¡¥Program对?象¨®}接口是一种用来定义程序的协议,它描述可属于任何类或结构的一组相关行为。

接口可由方法、属性、事件和索引器或这4种成员类型的任何组合构成,但不能包含字段。

C#中的类只支持单继承,但基于多继承给程序员带来的诸多方便与好处,所以通过接口可以实现多继承的功能。

(以I开头命名接口名称)一个接口实现多个类:一个派生子类可以实现多个接口(多个接口用,隔开):class Program : IPeople, ITeacher, IStudent//多¨¤接¨®口¨²继¨¬承D{string name = "";string sex = "";///<summary>///姓?名?///</summary>public string Name{get{return name;}set{name = value;}}///<summary>///性?别Àe///</summary>public string Sex{get{return sex;}set{sex = value;}}///<summary>///教¨¬学¡ì方¤?法¤¡§///</summary>public void teach(){Console.WriteLine(Name + " " + Sex + " 教¨¬师º|");}///<summary>///学¡ì习¡ã方¤?法¤¡§///</summary>public void study(){Console.WriteLine(Name + " " + Sex + " 学¡ì生¦¨²");}static void Main(string[] args){Program program = new Program(); //实º¦Ì例¤y化¡¥类¤¨¤对?象¨®ITeacher iteacher = program; //使º1用®?派¨¦生¦¨²类¤¨¤对?象¨®实º¦Ì例¤y化¡¥接¨®口¨²ITeacher = "TM";iteacher.Sex = "男D";iteacher.teach();IStudent istudent = program; //使º1用®?派¨¦生¦¨²类¤¨¤对?象¨®实º¦Ì例¤y化¡¥接¨®口¨²IStudent = "C#";istudent.Sex = "男D";istudent.study();}}}显式接口成员实现如果类实现两个接口,并且这两个接口包含具有相同签名的成员,那么创建一个仅通过该接口调用并且特定于该接口的类成员。

interface ImyInterface1{///<summary>///求¨®和¨ª方¤?法¤¡§///</summary>///<returns>加¨®法¤¡§运?算?的Ì?和¨ª</returns>int Add();}interface ImyInterface2{///<summary>///求¨®和¨ª方¤?法¤¡§///</summary>///<returns>加¨®法¤¡§运?算?的Ì?和¨ª</returns>int Add();}class myClass : ImyInterface1, ImyInterface2//继¨¬承D接¨®口¨²{///<summary>///求¨®和¨ª方¤?法¤¡§///</summary>///<returns>加¨®法¤¡§运?算?的Ì?和¨ª</returns>int ImyInterface1.Add() //显?式º?接¨®口¨²成¨¦员¡À实º¦Ì现?{int x = 3;int y = 5;return x + y;}///<summary>///求¨®和¨ª方¤?法¤¡§///</summary>///<returns>加¨®法¤¡§运?算?的Ì?和¨ª</returns>int ImyInterface2.Add() //显?式º?接¨®口¨²成¨¦员¡À实º¦Ì现?{int x = 3;int y = 5;int z = 7;return x + y + z;}}class Program{static void Main(string[] args){myClass myclass = new myClass(); //实º¦Ì例¤y化¡¥接¨®口¨²继¨¬承D类¤¨¤的Ì?对?象¨®ImyInterface1 imyinterface1 = myclass; //使º1用®?接¨®口¨²继¨¬承D类¤¨¤的Ì?对?象¨®实º¦Ì例¤y化¡¥接¨®口¨²Console.WriteLine(imyinterface1.Add()); //使º1用®?接¨®口¨²对?象¨®调Ì¡Â用®?接¨®口¨²中D的Ì?方¤?法¤¡§ImyInterface2 imyinterface2 = myclass; //使º1用®?接¨®口¨²继¨¬承D类¤¨¤的Ì?对?象¨®实º¦Ì例¤y化¡¥接¨®口¨²Console.WriteLine(imyinterface2.Add()); //使º1用®?接¨®口¨²对?象¨®调Ì¡Â用®?接¨®口¨²中D的Ì?方¤?法¤¡§}}}。

相关主题