C#中的接口

256 阅读2分钟

「这是我参与2022首次更文挑战的第14天,活动详情查看:2022首次更文挑战」。

欢迎各位朋友微信搜索「Andy阿辉」关注一波!

写一些程序员的所思所想,希望对你有帮助。

前言

在日常的开发中,如果需要提炼一些公用的方法有一种办法,就是使用接口来定义,其它拥有这些方法的类需要实现这些接口,这样就可以使用。

那么今天咱们来一起学习下接口。

什么是接口

接口是指定一组函数成员而不实现它们的引用类型,所以只能类和结构来实现接口。

要实现一个接口,类或结构必须做两件事情

  • 必须在基类列表后面列出接口名称
  • 必须为接口的每一个成员提供实现

关于接口的声明有以下几点需要注意

  • 接口的声明不能包含数据成员和静态成员
  • 接口声明只能包含方法、属性、事件、索引器这些类型的非静态成员函数
  • 接口声明的这些成员函数不能包含任何实现代码,而在每个成员的后面必须使用分号(;)
  • 接口的名称必须从大写的I开始
  • 接口类和结构一样,接口声明还可以分隔成分部接口声明。
        interface BaseInfo 
        {
            int Age();
            string Name();
        }

接口的使用

实现接口需要注意事项

  • 在基类列表中包含接口名称
  • 为每一个接口的成员提供实现
  • 如果类从基类继承并实现了接口,基类列表中的基类名称必须放在所有接口之前。(一个类只能有一个基类)
        interface IBaseInfo  
        {
            int Age();
            string Name();
        }

        class Ahui :IBaseInfo
        {
            public int Age()
            {
                return 28;
            }

            public string Name()
            {
                return "阿辉";
            }
        }

接口不仅仅是类或结构要实现的成员列表,它是一个引用类型。

不能直接通过类对象的成员访问接口,然而,我们可以通过把类对象引用强制转换为接口类型来获取指向接口的引用。一旦有了接口的引用,我们就可以使用点号来调用接口的方法。

        static void Main(string[] args)
        {
            Ahui ahui=new Ahui();
            IBaseInfo baseInfo=(IBaseInfo)ahui;             //获取接口的引用
            baseInfo.Name();                                //使用接口的引用调用方法

            Console.ReadKey();
        }

寄语

人生短暂,我不想去追求自己看不见的,我只想抓住我能看得见的。

原创不易,给个关注。

我是阿辉,感谢您的阅读,如果对你有帮助,麻烦点赞、转发 谢谢。