在好多编译原因中,interface里面是可以声明方法的,编译器会识别interface,并编译里面的成员方法。在C#中也有interface。
概述
C# 中的interface称为“接口”,之所以称之为接口是因为在C# 中,interface可以声明一个专门去定义成员方法的x,而且被定义的这个x是可以被继承的,C#中称作接口继承。
定义接口
interface XXXInterface
{
// 这里可以定义一些成员方法,单不需要实现。
}
这里的XXXInterface还可以被其他类所继承,继承后要实现XXXInterface里定义的方法。
也就是说C# 中的接口是为了专门拿出来一块地方来声明一些方法,方便其他类去实现和使用。
举例
using System;
namespace Test
{
interface CarInterface
{
// 定义一个成员接口
void Run();
}
class Car : CarInterface // Car继承了CarInterface的接口
{
// Car直接继承了CarInterface的接口,就需要实现里面的接口,否则编译报错
public virtual void Run()
{
}
}
class Bicycle : Car // 自行车继承于Car,不是直接继承接口,所以不实现接口方法不会报错
{
// 父类有这个方法,子类可以复写父类方法。
public override void Run()
{
}
}
class Program
{
static void Main(string[] args)
{
Bicycle b = new Bicycle();
b.Run();
}
}
}
感悟
我感觉interface声明的也是x说是类吧不是class,说不是类吧,挺像类,只是该类没有成员变量,没有方法实现,这个被声明出来的东西可以被其他类所继承,C# 中管这个叫做“接口继承”。
class 可以定义一个类,interface定义一些接口。