Unity 3D游戏开发 - C#面向对象 | 多态之接口语法
其他
2018-09-24 03:00:12
阅读次数: 0
接口语法
- 抽象类 -> 接口
- 当抽象类中所有方法都是抽象方法时,可以把这个抽象类用另外一种形式来表现,这种形式叫接口。
- 语法格式要求
- 接口使用 interface 关键字定义,没有 class 关键字,接口名一般使用 “IXxxx” 这种方式进行书写,在一堆脚本中通过名字判断,I 开头的都是接口。
- 接口中不能包含字段,但可以包含属性。
- 接口中定义的方法不能有方法体,全是抽象方法,但又不需要用 abstract 修饰。
- 接口中的成员不允许添加访问修饰符,默认都是 public。
- 用法
- 接口注意事项
- 接口中所有方法都是抽象方法,所以接口不能被实例化。
- 一个类可以实现多个接口,被实现的多个接口之间用逗号隔开。
- 一个接口可以继承多个接口,接口之间也要用逗号隔开。
- 练习
//1.创建汽车的父类. Car.cs
class Car
{
private string brand;
public string Brand
{
get { return brand; }
set { brand = value; }
}
public Car(string brand)
{
this.brand = brand;
}
public void Run()
{
Console.WriteLine("{0}品牌的汽车在路上行驶。", brand);
}
}
//2.创建子类:宝马. BMWCar.cs
class BMWCar:Car
{
public BMWCar(string brand)
:base(brand)
{
}
}
//3.创建接口IFly. IFly.cs 实现下面蝙蝠侠战车特有的飞行功能.
interface IFly
{
void Fly();
}
//4.创建子类:蝙蝠侠战车. Batmobile.cs
class Batmobile:Car,IFly
{
public Batmobile(string brand) : base(brand) { }
public void Fly()
{
Console.WriteLine("{0}在飞行。", base.Brand);
}
}
//5.主程序测试. Program.cs
class Program
{
static void Main(string[] args)
{
BMWCar b1 = new BMWCar("宝马750");
b1.Run();
BMWCar b2 = new BMWCar("宝马740");
b2.Run();
Batmobile bat1 = new Batmobile("蝙蝠侠战车1号");
bat1.Run();
bat1.Fly();
Console.ReadKey();
}
}
使用场景
- 接口是一种规范,当我们对现在已经存在的类的继承关系进行功能扩展时,可以使用接口完成相应的工作。
转载自blog.csdn.net/weixin_41232641/article/details/82721218