C# 接口详解

一.定义
  1、接口描述的是可属于任何类或结构的一组功能,所以继承接口的类或结构必须实现接口中声明的成员;(结构可实现接口)
  2、interface关键字进行定义接口;
  3、接口只包含 属性、方法、事件、索引器;
  4、接口不能实例化。

二.、疑问
  接口内部方法只有方法名我们为什么要继承这个接口?作用是什么?
  继承接口还必须实现接口声明的方法。

三 、举个例子解答上述疑问
读书馆借书例子,新建读书馆 目前为止只进货了两类书籍 python 和 C。

建一个书类接口

    interface IBooks
    {
        string Name { get; }
        void LoanOut(string data);
        void GiveBack(string data);
    }

建立 python 这类书

    class python : IBooks
    {
        private string name = "python";
        public string Name
        {
            get { return name; }
        }

        public void LoanOut(string data)
        {
        }

        public void GiveBack(string data)
        {
        }

建立 C 这类书

    class C : IBooks
    {
        private string name = "C";
        public string Name
        {
            get { return name; }
        }

        public void LoanOut(string data)
        {
        }

        public void GiveBack(string data)
        {
        }
    }

书类的方法未写实际内容,比如需要将书借出的时间记录在数据库不同的数据表。

书类接口使用

    class Program
    {
        // 记录已借出的书籍名称
        private static List<string> booksName = new List<string>();

        static void Main(string[] args)
        {
            IBooks book;

            book = new python();
            LoanOut(book);

            book = new C();
            LoanOut(book);
        }

        /// 添加新书籍时此方法不需要修改
        public static void LoanOut(IBooks name)
        {
            // 获取当前日期
            string data = DateTime.Now.ToLongDateString().ToString();
            name.LoanOut(data);
            booksName.Add(name.Name);
        }
    }

上面的代码是已经开发完的项目,
假如图书馆扩大又新增加 C#、C++ 这两类书籍,
这时我们只需要添加 C# 和 C++ 这两个类都继承书类接口即可。

发布了34 篇原创文章 · 获赞 54 · 访问量 2万+

猜你喜欢

转载自blog.csdn.net/weixin_42686768/article/details/105452144