C#基础-----接口实现多态

什么是接口?

接口就是一种协议规范,约定好遵守某种规范就可以写通用的代码;定义了一组具有各种功能的方法(只是一种能力,没有具体实现,像抽象方法一样,光说不做)。


接口存在的意义:为了实现多态--------》多态的意义---------------》节省成本,提高效率。


接口解决了类的多继承问题;解决了类继承以后体积庞大的问题,接口之间可以实现多继承


接口语法:定义接口使用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();
    }


显示实现接口

为什么要显示

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值