zoukankan      html  css  js  c++  java
  • 接口实现多态

    1.什么事接口

      

        01.接口就是为了约束方法的格式(参数和返回值类型)而存在的

        02.接口可以实现多继承,弥补单继承的缺陷。

      03.接口可以看成是一个特殊的抽象类,通过反编译看源码可知

        04.接口中方法不用访问修饰符,因为CLR会自动添加,并且不能有方法体

        05.如果一个类实现了某个接口,就得实现该接口中所有的方法

        06.接口要谨慎使用,防止出现接口污染!

        07.接口仅仅代表一种能力,实现该接口的类和接口没有继承关系

        08.接口是用来实现的,类是用来继承的。

        09.其实很多时候,看似可以不用接口,因为接口就是一个方法的约定,

        表明你这个类必须要有某些方法,但是不写接口也可以有这些方法,用了接口,

        就可以使用接口变量,统一调用,实现多态。

        10.接口中只能定义方法,不能定义变量。

        

    2.抽象类和接口的区别:

    当需要的各个对象之间存在父子类关系时,可以考虑使用抽象类,

    当各个对象之间不存在继承关系,只是有相同的能力时,而已考虑使用接口。

    实现类 在实现接口的方法是 不需要override关键字

    接口里定义方法直接从放回值开始  比如

     void Eat();

    接口底层编译器默认加publlic abstract

    3,创建一个接口的例子

      //创建一个飞的接口

    public interface IFly
       {
           //接口中方法不用访问修饰符,因为CLR会自动添加,并且不能有方法体
           void Say();
    
       }
    

     //创建一个吃的接口

     //吃的接口
       public interface IEat
       {
           //接口中方法不用访问修饰符,因为CLR会自动添加,并且不能有方法体
           void eat();
       }

      //创建一个鸟类来实现飞的接口和吃的接口

      

    public class Bird:IFly,IEat{
    
     public void Say()
            {
                Console.WriteLine("鸟在飞");
            }
    
            public void eat()
            {
                Console.WriteLine("鸟在吃");
            }
        }
    

      //创建一个plan飞机类 实现接口飞

    public class Plan{
    
       public void Say(){
    
        Console.WriteLine("飞机在飞");
    
      }
    }
    

      

     //Test 去测试 

    //定义接口数组实例化对象
    IFly[] ifly ={new Gird(),new Plan()};
    //循环数组调用方法实现多态
                foreach (IFly iFly in iFlies)
                {
                    iFly.Say();
                }
    

      

     4.接口名实现 方法

    注:如果有一个类要实现两个接口,不巧的是这两个接口(如:IFly,IPlay)中右两个同命名的方法(Eat)

    我们都知道

    如果一个类实现了某个接口,就得实现该接口中所有的方法

    这怎么办呐?自有解决的方法的:

     我们就可以使用接口名.方法来实现

    //实现了IFly和IPlay两个接口
       public class Dog:IFly,IPlay
        {
            //如果一个类实现了某个接口,就得实现该接口中所有的方法
           //这样我们就可以使用接口名.方法来实现
            void IFly.Say()
            {
                
            }
    
            void IEat.Eat()
            {
                
            }
        }
    

      

     

      

  • 相关阅读:
    汉语-词语:办法
    汉语-词语:做法
    汉语-词语:说法
    汉语-词语:看法
    汉语-词语:想法
    汉语-词语:音色
    汉语-词语:声纹
    职业:斜杆青年
    汉语-流行词汇:傻白甜
    汉语-词语:慧根(生理学概念)
  • 原文地址:https://www.cnblogs.com/zhangyu0217----/p/6600014.html
Copyright © 2011-2022 走看看