• 深入了解接口的使用


    首先我们要了解我们为什么要实现接口?

    第一:因为子类只有一个直接父类,即子类只能继承一个父类  为了能让子类实现多个方法模型,所有微软引入了接口的用法  一个类可以实现多接口

    第二:提高了程序的扩展性和降低系统间的耦合性  

    第三:可以规定方法的形式 和 规范

                                      定义接口的方法如下:

    namespace 接口简单实现多态
    {
        //定义接口的方法   把Class关键字换成 interface 关键字
       public  interface IFly
        {
           //接口中定义方法的注意点
           //01  方法不能有方法体(也就是不能实现)
           //02  C#中方法不能有修饰符修饰  (微软系统内部会自动增加一个public 修饰符)
           //03  C#接口中只能定义方法而不能定义字段  (Java可以定义字段,但是必须是静态常量字段)
            void Say();
        }
    }

                                         如何实现接口?

    namespace 接口简单实现多态
    {
        //定义一个普通类  鸟类  实现 IFly接口
       public  class Bird:IFly
        {
           //注意 !!
           //必须实现该接口的所有方法
            public void Say()
            {
                Console.WriteLine("我是鸟,我会飞!");
            }
        }
    }
    namespace 接口简单实现多态
    {
        //定义一个飞机类 实现 IFly接口
       public  class Prin:IFly
        {
            public void Say()
            {
                Console.WriteLine("我是飞机");
            }
        }
    }

                                        使用接口来实现多态

    namespace 接口简单实现多态
    {
        class Program
        {
            static void Main(string[] args)
            {
                //定义一个接口类型的数组  用来保存 实现该接口的 类  可以理解为里氏替换原则 父类变量指向子类对象只不过这里换成了接口
                IFly[] ifly = 
                {
                    new Bird(), 
                    new Prin()
                };
                //遍历数组
                foreach (IFly items in ifly)
                {
                    //输出接口中的方法    会自动调用该子类的方法
                    items.Say();
                }
                Console.ReadKey(); 
            }
        }
    }

                                      使用接口实现多继承(即一个接口继承另一个或多个接口)

    namespace 深入了解接口
    {
        //定义一个IEat接口
       public  interface IEat
        {
           void Eat();
        }
    }
    namespace 深入了解接口
    {
        //接口继承接口  
       public  interface IFly:IEat
        {
           void fly();
        }
    }
    namespace 深入了解接口
    {
        //鸟可以实现多个接口 
       public  class Bird:IFly
        {
            public void fly()
            {
                Console.WriteLine("我能飞!");
            }
    
            public void Eat()
            {
                Console.WriteLine("我能吃");
            }
        }
    }
    namespace 深入了解接口
    {
        class Program
        {
            static void Main(string[] args)
            {
                IFly fly = new Bird();
                fly.Eat();
                fly.fly();
                Console.ReadKey();
            }
        }
    }

    namespace 接口简单实现多态

    {
        //定义一个飞机类 实现 IFly接口
       public  class Prin:IFly
        {
            public void Say()
            {
                Console.WriteLine("我是飞机");
            }
        }
    }

  • 相关阅读:
    xgzc— math 专题训练(一)
    floyd判圈算法
    CF961G Partitions
    luoguP4778 Counting swaps
    AT3913 XOR Tree(巧妙转换+状压dp)
    手动实现aop编程
    代理模式
    spring重点一:处理对象创建时间 个数以及方式
    spring helloword
    spring用来干什么,解决的问题
  • 原文地址:https://www.cnblogs.com/liujiayun/p/5383716.html
Copyright © 2020-2023  润新知