zoukankan      html  css  js  c++  java
  • 浅谈 接口

    接口:

    先看下面一段话:

           如果,你即将准备开始编程,就是那种 感觉需要很多很多类,而其中有些类,你已经提前知道需要哪些共同的功能。怎么办?当然首先想到,提前给他们规定好一种模式,规定他们是什么样的方法,有返回值,还是无返回值,返回啥种类型,等等的规定。

    接口,就是可以帮助你的。接口,只是一种规范,一种约束。

    概念:接口,是把方法都组合起来,以封装特定功能的集合。

    注意:

        1.一旦类实现了接口,类就可以支持接口所指定的所有属性和成员。

       2.声明接口在语法上与声明抽象类完全相同,但是不允许接口中有任何成员的具体实现。所以,接口是不能实例化的。不能有构造方法和字段。

       3.不能有修饰符,如public,private,不能声明虚拟的,或者静态的。

       4.实现接口的类必须实现接口中所有的方法。(类似于抽象类中的抽象方法必须要全部实现)。

       5.一个类可以支持实现多个接口,多个类也可以支持相同接口。

       6.接口的命名,前面要加一个大写的"I".

    用法:

       接口用interface声明,不能用class,接口名称前面要加,"I",接口中的属性或方法不能有修饰符,方法或方法体。

    代码示例:      

      interface IPlay
        {
          //  int _id; 这种情况是错误的,因为接口中不能有字段
             int Num //这种情况是正确的,因为这是属性,属性的本质是两个方法组成(get,set)。
            {
                get; set;
            }
             void PlayGame();//只要定义,实现该接口的类必须要实现该方法
            void  PlayBasketball();
        }
    
        interface IEat
        {
            void EatFruit();
    
        }
        class Man:IPlay,IEat //一个类可以实现多个接口,并用逗号隔开,还可以继承类,但是只能一个,可以自己试试。
        {
            public int Num //属性也是要实现的,因为他就是方法嘛,字段的话就不可以。你可以试试。
            {
                get; set;//这边是简写了,不清楚属性的可以去查查属性是啥,再强调一遍,这就是两个方法
            }
           public void PlayGame()
            {
                Console.WriteLine("I can PlayGame");
            }
    
            public void PlayBasketball()
            {
                Console.WriteLine("I can Play BasketBall");
            }
    
            public void EatFruit()
            {
                Console.WriteLine("I Can Eat Fruit");
            }
        }
    
    
    -------
      static void Main(string[] args)
            {
                Man m = new Man();
                m.EatFruit();
                m.Num = 2;
                m.PlayBasketball();
                m.PlayGame();
                Console.Read();
            }
    

      

  • 相关阅读:
    JS document.execCommand实现复制功能(带你出坑)
    jquery动态添加删除一行数据示例
    SpringBoot SpEL表达式注入漏洞-分析与复现
    Fastjson 1.2.22-24 反序列化漏洞分析
    udf提权原理详解
    ZZCMS v8.2 前台Insert注入+任意文件删除
    安恒杯 3月线上个人赛WriteUp
    SQLI LABS Stacked Part(38-53) WriteUp
    【转】Ubuntu16.04安装docker
    安装部署k8s-版本-1.13
  • 原文地址:https://www.cnblogs.com/u3ddjw/p/6697115.html
Copyright © 2011-2022 走看看