什么是接口?
接口就是一种协议规范,约定好遵守某种规范就可以写通用的代码;定义了一组具有各种功能的方法(只是一种能力,没有具体实现,像抽象方法一样,光说不做)。
接口存在的意义:为了实现多态--------》多态的意义---------------》节省成本,提高效率。
接口解决了类的多继承问题;解决了类继承以后体积庞大的问题,接口之间可以实现多继承
接口语法:定义接口使用interface 关键字,一般接口名要以大写I开头
interface IFlyable()
{
void Fly();
}
接口是一种能力;子类继承抽象类,实现接口;
接口中的成员必须不能有实现,接口不能实例化,成员不能有访问修饰符(隐式公开),接口中可以有属性,方法,索引器等(属性,索引器本质上也是方法),但不能有字段,接口中的所有方法必须被子类中全部实现(除非子类是抽象类,把接口中的成员标记为抽象的)
一个类只能继承一个父类,但是可以实现多个接口,接口只能决定能干什么,怎么干由类来实现
接口实现多态
class Program
{
static void Main(string[] args)
{
IBarkable bark = new RubberDuck(); //new RealDuck();
bark.Bark();
Console.ReadKey();
}
}
public class Duck
{
public void Swim()
{
Console.WriteLine("鸭子水上漂....");
}
}
public class RealDuck : Duck, IBarkable
{
#region IBarkable 成员
public void Bark()
{
Console.WriteLine("嘎嘎叫!!!!");
}
#endregion
}
public class WoodDuck : Duck
{
}
public class RubberDuck : Duck, IBarkable
{
#region IBarkable 成员
public void Bark()
{
Console.WriteLine("唧唧叫!!!!!");
}
#endregion
}
/// <summary>
/// “叫”的接口
/// </summary>
public interface IBarkable
{
void Bark();
}
显示实现接口
为什么要显示