C#:接口

前言:对于接口这一概念,前几天我的一个学长用这个问题考了我一下,结果我没有答上来...恰巧今天就遇到了这个问题,那么我们今天就来了解一下这个概念吧。(注,今天我仅写有关软件类接口,硬件接口暂时不谈)

接口的定义:(软件类接口)是指对协定进行定义的引用类型。其他类型实现接口,以保证它们支持某些操作。接口指定必须由类提供的成员或实现它的其他接口。与类相似,接口可以包含方法、属性、索引器和事件作为成员。          --百度百科

从上面的定义我们知道两点:1.接口是一种规范;2.接口需要被实现;3.接口包含方法、属性、索引器和事件...其实前两点不难理解,以安卓手机的micro充电接口为例:这些充电器的接口规格必须统一,所以即使我的手机换了另一个micro规格充电头,也是可以完成充电的;但光有这些规格是不够的,光有规格那只是理论,所以我们需要用现实的一些材料来做出这个充电头才行。

接口的代码定义:需要建立Class,并且命名以大写的I开头

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace _4.接口
{
    interface IFly
    {
        void IFly();
    }

}

*注意:接口在定义时内部不需要包含接口的方法体。

接口的特点:

-完全抽象的一种约定

-接口就是用来实现的

接口的用法:以下为例子:(interface的定义在上一个代码块中)

using System;

namespace _4.接口
{
    class Program
    {
        static void Main(string[] args)
        {
            IFly ifly = new Student();//student实例化了接口
            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 class Student:IFly//接口:实现而非继承
    {
        public void SayHello()
        {
            Console.WriteLine("我是学生");
        }

        public void IFly()//实现
        {
            Console.WriteLine("我会飞辣");
        }
    }
}

运行结果:

以上代码的思路:先通过Class建立一个接口,而后通过Student类实现这个方法。注意:此处语法类似继承但不叫做继承,而是有着专业的称呼:实现。

注意事项:

1.实现接口时,该类的方法体必须与方法同名

2.一个子类既继承了父类又实现了接口,那么这个父类的代码位置要在接口前面

加强巩固:接口与类的异同点:

不同点:

-不能直接实例化接口,但可以实例化接口实现的方法;

-接口不包含方法的实现;

-接口可以多实现,而类只能但继承;

-类定义可以在不同源文件之间拆分

相同点:

-接口、类都可以从多个接口继承;

-接口之间可以相互实现,类也可以i

猜你喜欢

转载自blog.csdn.net/Marshallren/article/details/86660920