C#中的接口

来源:互联网 发布:1到100全部素数c语言 编辑:程序博客网 时间:2024/06/05 20:33

  前言:

  在某周五的晚上我们详细且激烈的讨论了UML中的九大图以及四中关系,中间不乏仁人志士对接口提出了一系列的问题和独到的见解,此时再在C#视频中听到老杨口中的接口,理解便更加深刻了。

  内容:

  先对接口的概念有所了解吧,万变不离其宗。百度百科解释:接口泛指实体把自己提供给外界的一种抽象化物(可以为另一实体),用以由内部操作分离出外部沟通方法,使其能被修改内部而不影响外界其他实体与其交互的方式。人类与电脑等信息机器或人类与程序之间的接口称为用户界面。电脑等信息机器硬件组件间的接口叫硬件接口。电脑等信息机器软件组件间的接口叫软件接口在计算机中,接口是计算机系统中两个独立的部件进行信息交换的共享边界。这种交换可以发生在计算机软、硬件,外部设备或进行操作的人之间,也可以是它们的结合。

  我们的理解:

  就像是插座和插头的关系,那个插孔就相当于一个接口我们常说的USB接口也是一个接口,我们无需知道U盘内部的结构和方法,只需要知道U盘插到电脑上就可以用就行了,用于程序中便是,对封装好的类我们无需去研究它到底用了什么方法,只要通过接口去实现这个方法即可。

有关接口的知识:

1、通常我们用Interface关键字来定义接口。可由方法,属性,时间,索引器或四中成员类型的任意组合构成。

2、添加一个接口类的时候通常要以I开通来命名如果一个类即继承又实现了连接口,那么类必须卸载前面一个类,那么类必须写在前面,一个类只能接口,但可以实现一个接口但可以实现多个接口

3、并且没有“类继承接口”这个说法,只能是实现接口。

4、不能直接实例化接口

5、接口不包含方法的实现,接口是一种能力


看一段小程序:

 class Program    {        static void Main(string[] args)        {        //    Teacher t = new Teacher();        //    t.IFly();        //    Console.ReadKey();            List<string> list = new List<string>();            IFly ifly = new Teacher();//又是多态的体现形式,这是高级部分内容了            ifly.IFly();            Console.ReadKey();        }    }    public class Person    {               private string _name;        public string Name        {            get { return _name; }            set { _name = value; }        }        private char _gender;        public char Gender        {            get { return _gender; }            set { _gender = value; }        }        private int _age;        public int Age        {            get { return _age; }            set { _age = value; }        }        public void Show()        {            Console.WriteLine("{0}岁的{1}在学校是最学霸的{2}学生", _age, _name, _gender);        }    }
namespace _09接口{     interface IFly    {        void IFly();    }}
public class Teacher : Person,IFly    {        public void Say()        {            Console.WriteLine("hellow,我是老师");        }        public void IFly()        {            Console.WriteLine("我会飞");        }        //void IFly.IFly()        //{        //    Console.WriteLine("我也会飞");        //}    }    public class Student:IFly    {        public void SayHello()        {            Console.WriteLine("我是学生");        }        public void IFly()        {            Console.WriteLine("我会飞");        }    }
 

 总结:

C#中的接口和类的异同:

异: 不能直接实例化接口。 接口不包含方法的实现。 接口可以实现多继承,而类只能是单继承。 类定义可在不同的源文件之间进行拆分。 

同: 接口、类和结构可从多个接口继承。 接口类似于抽象基类:继承接口的任何非抽象类型都必须实现接口的所有成员。 接口可以包含事件、索引器、方法和属性。 一个类可以实现多个接口。(摘自网络)


0 0
原创粉丝点击