zoukankan      html  css  js  c++  java
  • 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不适合写博客,继续使用我的博客园!!!!!

  • 相关阅读:
    Netty 源码解读(二)-ChannelPipeline、ChannelHandler、ChannelHandlerContext
    Netty源码解读(一)-服务启动和接收请求源码
    浅谈自动化测试框架开发
    程序运行时环境
    常见的Linux内核线程
    一个好用gdb扩展工具
    使用Qemu模拟Numa机器
    使用qemu的nat方式登录
    2021.32 量化
    2021.31 模型
  • 原文地址:https://www.cnblogs.com/CodeWorkerLiMing/p/12007291.html
Copyright © 2011-2022 走看看