zoukankan      html  css  js  c++  java
  • 面向对象——接口

    *概念

          接口(Interface)是把隐式公共方法和属性组合起来,以封装特定功能的一个集合。一旦实现了接口,类就能够支持接口所指定的全部的属性和成员。声明接口在语法上与生命抽象类全然同样,可是不同意提供接口中不论什么成员的运行方式。所以,接口不能实例化,不能有构造方法和字段;不能有public、private等修饰符;不能声明虚拟的或静态的等。值得注意的是,实现接口的类就必需要实现及口中的全部的方法和属性。

          一个类能够支持多个接口,多个类也能够支持同样的接口。

          

    **声明与应用

          接口用Interface声明,而不是class,接口名称前要加“I”,接口中的方法或属性前面不能有修饰符、方法没有方法体。

    interface Ichange
    {
        //声明一个Ichange接口,有一个方法ChangeThing,參数是一个字符串变量,返回一个字符串
        string ChangeThing(string thing);
    }



          接口实例应用

        //接口的声明
        interface IDoor
        {
            void Close();  //方法
            void Open();
        }
    
        // 自己主动门,有人时,自己主动打开,没人时,自己主动关上
        public class DoorA:IDoor
        {
            private bool HavePerson = false;  //是否有人,默认没有
    
            public void Open()
            {
                if (HavePerson)
                    Console.WriteLine("The doorA is Opend");
            }
    
            public void Close()
            {
                if (!HavePerson)
                    Console.WriteLine("The doorA is closed");
            }
        }
        //添加�一个门,手推才会开,不推自己主动关上
        class DoorB : IDoor
        {
            private bool IsPush = false;
            public void Open()
            {
                if (IsPush)
                    Console.WriteLine("DoorB的门开了");
            }
    
            public void Close()
            {
                if (!IsPush)
                {
                    Console.WriteLine("DoorB的门关上了");
                }
            }
        }
        class Program
        {
            static void Main(string[] args)
            {
                //创建实例
                DoorA doora = new DoorA();
                DoorB doorb = new DoorB();
    
                doora.Close();
                doorb.Close ();
    
                Console.Read();
            }
        }

    执行结果为:The doorA is closed.

                                  DoorB的门关上了。


    ***接口与抽象类的差别

          1、从形态上来说,抽象类能够给出一些成员的实现,接口却不包括成员的实现,抽象类的抽象成员能够被子类部分实现,而接口的成员须要实现类的全然实现,一个类仅仅能继承一个抽象类,但可实现多个接口。

          2、类是对对象的抽象;抽象类是对类的抽象;接口是对行为的抽象。

          3、假设行为跨越不同类的对象,能够使用接口;对于一些相似的类对象,用继承抽象类。比方说,猫、狗、兔子事实上都是动物,他们之间有非常多相似的地方,就能够让他们继承动物这个抽象类,可是飞机、麻雀、超人尽管有共同点都会飞,可是却是不同的类,这时候,我们就用接口来实现。

          4、从设计角度讲,抽象类是从子类中发现了公共的东西,泛化出父类,然后子类继承父类,而接口是根本不知道子类的存在,方法怎样实现还不确认,预先定义。也就是说,抽象类是自底而上抽象出来的,而接口是自顶向下设计出来的。


          


  • 相关阅读:
    数字图像、灰度直方图、色彩空间
    编译原理
    Visual studio文件中不同图标对应对象的类别
    230 前端之JQuery:JQuery属性操作
    229 前端之JQuery:JQuery基本语法
    228 前端之JavaScript:JS之DOM对象三
    227 前端之JavaScript:JS之DOM对象二
    226 前端之JavaScript:JS之DOM对象一
    225 前端之JavaScript:JavaScript对象
    021 用Vue.js搭建一个小说阅读网站
  • 原文地址:https://www.cnblogs.com/hrhguanli/p/3788585.html
Copyright © 2011-2022 走看看