C#之接口和显式接口的基本写法

接口的由来和引入的原因,在前面写的接口和抽象,以及接口详解,说的很清楚了,这里就不再赘述相同的内容,就写写具体的接口的入门用法,和他的部分运用

  • 当用到多继承的时候,用接口(类是不能多继承的)

接口就是一个规范,能力

在java和c#里面,这种纯抽象类,一般就是接口了。 只需要把abstract class换成interface这个关键字就好,并且里面的abstract public全都去掉。因为interface里面要求全都是抽象类。那自然子类里要用这个接口里面的纯虚方法的就不需要加上override修饰了。也不能加访问修饰符

  • 只要一个类继承了一个接口,就必须实现接口中的所有成员。继承了接口后,可以自动补齐

  • 接口一般用I开头

interface IVehicleBase//这就是接口
    {
      void Stop();
      void Run();
    }
    abstract  class Vehicle:IVehicleBase
    {
        public void Stop() //这里便使用了上面写的一个接口
        {
            Console.WriteLine("stpped!");
        }
        abstract public void Run();
        //这里的Run不是上面的接口,而是定义的一个纯虚方法,供子类调用

显示实现接口

显示实现接口就是为了解决方法的重名问题

 public class Bird:IFlyable
    {
        public void Fly()//这其实是自己的方法,但是,会被编译器认为是接口实现的方法
        {
            Console.WriteLine("鸟会飞");
        }
    }

    public interface IFlyable
    {
        void Fly();
    }

显示实现接口的方法

 class Program
    {
        static void Main(string[] args)
        {
            IFlyable fly = new Bird();
            fly.Fly();//接口的飞
            Bird bird = new Bird();
            bird.Fly();//自己的飞
        }
    }
    public class Bird:IFlyable
    {
        public void Fly()
        {
            Console.WriteLine("鸟会飞");
        }

        void IFlyable.Fly()
        {
            Console.WriteLine("这是接口的飞行");
        }
    }
    public interface IFlyable
    {
        void Fly();
    }

你可能感兴趣的:(C#入门知识,接口,c#)