• c#接口interface学习


     好久没学习C#了,上次已经学习到了接口这块,感觉有点不太好理解,因此重新学习,在vs上面运行了,本来不想写博客的,但是正好看到网上有人说,写博客可以加深印象,因此,写吧。

    下面是菜鸟教程的实例

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    
    class Program
    {
        static void Main(string[] args)
        {
            IWorker james1 = new James1();
            IWorker james2 = new James2();
            james1.work("设计");
            james2.work("编程");
    
            //从这个例子我体会到了有接口的好处,可以想象如果又来了新的员工。
            //如果不采用接口,而是每个员工都有一个单独的类,这样就会容易出错。
            //如果有接口这种协议约束的话,那么只要实现了接口就肯定有接口里声明的方法,我们只需拿来调用。
        }
    }
    
    public interface IWorker    //定义接口: IWorker
    { 
        void work(string s); 
    }
    
    class James1 : IWorker
    {
        public void work(string s)
        {
            Console.WriteLine("我的名字是James1,我的工作是" + s);
        }
    }
    
    class James2 : IWorker
    {
        public void work(string s)
        {
            Console.WriteLine("我的名字是James2,我的工作是" + s);
        }
    }
    
    
    /*
     4.接口和抽象类的区别
    接口用于规范,抽象类用于共性。抽象类是类,所以只能被单继承,但是接口却可以一次实现多个。
    接口中只能声明方法,属性,事件,索引器。而抽象类中可以有方法的实现,也可以定义非静态的类变量。
    抽象类可以提供某些方法的部分实现,接口不可以。抽象类的实例是它的子类给出的。接口的实例是实现接口的类给出的。
    在抽象类中加入一个方法,那么它的子类就同时有了这个方法。而在接口中加入新的方法,那么实现它的类就要重新编写
     (这就是为什么说接口是一个类的规范了)。
    接口成员被定义为公共的,但抽象类的成员也可以是私有的、受保护的、内部的或受保护的内部成员
     (其中受保护的内部成员只能在应用程序的代码或派生类中访问)。
    此外接口不能包含字段、构造函数、析构函数、静态成员或常量。
    还有一点,我们在VS中实现接口时会发现有2个选项,一个是实现接口,一个是显示实现接口。
     实现接口就是我们平常理解的实现接口,而显示实现接口的话,实现的方法是属于接口的,而不是属于实现类的。
     
     */

    运行后如下:

    我的名字是James1,我的工作是设计
    我的名字是James2,我的工作是编程
    请按任意键继续. . .

    接口和抽象类的区别
    接口用于规范,抽象类用于共性。抽象类是类,所以只能被单继承,但是接口却可以一次实现多个。
    接口中只能声明方法,属性,事件,索引器。而抽象类中可以有方法的实现,也可以定义非静态的类变量。
    抽象类可以提供某些方法的部分实现,接口不可以。抽象类的实例是它的子类给出的。接口的实例是实现接口的类给出的。
    在抽象类中加入一个方法,那么它的子类就同时有了这个方法。而在接口中加入新的方法,那么实现它的类就要重新编写(这就是为什么说接口是一个类的规范了)。
    接口成员被定义为公共的,但抽象类的成员也可以是私有的、受保护的、内部的或受保护的内部成员(其中受保护的内部成员只能在应用程序的代码或派生类中访问)。
    此外接口不能包含字段、构造函数、析构函数、静态成员或常量。
    还有一点,我们在VS中实现接口时会发现有2个选项,一个是实现接口,一个是显示实现接口。实现接口就是我们平常理解的实现接口,而显示实现接口的话,实现的方法是属于接口的,而不是属于实现类的。

    后续文章不使用csdn了,csdn不适合写博客,继续使用我的博客园!!!!!

  • 相关阅读:
    努力努力,我假期要练琴学css
    在遇到困难时我们都会想要是这一切不曾发生该多好,可现实并不以我们的意志为转移,我们所能做的就是去克服...
    寒假学习目标~
    平安夜&&圣诞节
    you are the ont that we would like to trust and ca...
    Happy New Year!PR升3啦!
    呵呵,Merry Christmas & Happy New Year!
    使用Rx Framework实现XAML中的物体拖动
    MVVM绑定多层级数据到TreeView并设置项目展开
    Entity framework中EntityFunctions.CreateDateTime方法的闰年闰月bug
  • 原文地址:https://www.cnblogs.com/CodeWorkerLiMing/p/12007291.html
Copyright © 2020-2023  润新知