C#创建接口和定义抽象类(一)

接口是什么

接口,是只有方法,没有字段,也没有方法的实现,它貌似是一个规范方法的一个东西。我们可以这么理解,接口告诉了我们“有什么”,也就是方法的名称,具体“怎么做”,接口是不会去管的,所以接口只提供方法的名称,但它是不提供方法的实现,就好比电脑的USB插口,我们知道它可以插各种USB线,但我们不需要知道它具体是怎么运作的。在C#中因为不能像JAVA一样多重继承,所以接口就很好的补充了在这一点。

定义接口

如何定义一个接口,你可以在项目添加项除添加接口,也可以创建一个类后把Class改为interface即可,主义一般我们定义接口都是以大写i开头,例如 IComparable,Ianimal等等

实现接口

定义完接口以后我们就要实现他的接口成员,也就是它的方法,让我们来看一下如何实现

一、首先我们创建一个接口名为ILandBound(陆地动物),这个接口陆地动物继承它实现其方法就好了,海洋动物就不行了,原因请看下面代码

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

namespace CsharpInterface
{
    //接口不能含有字段例如 int a;
    //接口成员不实现方法例如public void int number(){console.writeline("数数字")};
    interface ILandBound
    {
        int NumberOfLegs();//接口中的方法,功能是返回它有多少只腿,如果是海洋生物实现这个方法就尴尬了
    }
}

二、然后我们创建一个类去继承它,这个类是一个陆地动物:马(Horse)

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

namespace CsharpInterface
{
    //这是一匹马
    class Horse : ILandBound
    {
        //返回马有4条腿
        int ILandBound.NumberOfLegs()
        {
            return 4;
        }
    }
}

接口的作用

我们实现了接口以后,那有什么作用呢,最后我们怎么去调用它呢?这时我们就要实例化一个接口对象然后引用继承它的类,只要这个类实现了它的方法就可以调用

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

namespace CsharpInterface
{
    class Program
    {
        static void Main(string[] args)
        {
            ILandBound land = new Horse();
            land.NumberOfLegs();
        }
    }
}

这时你会不会觉得奇怪,其实我创建一个horse对象然后调用它的方法也可以啊,的确是可以,但是接口是为了规范化之余,其实它更重要的是模拟多重继承这个概念,因为我们有时候需要继承多个类,一个类往往不满足,所以接口因此而生。

发布了15 篇原创文章 · 获赞 7 · 访问量 1927

猜你喜欢

转载自blog.csdn.net/weixin_40875853/article/details/91458011