码迷,mamicode.com
首页 > Web开发 > 详细

.NET 抽象类与接口的简述

时间:2019-03-12 21:26:35      阅读:210      评论:0      收藏:0      [点我收藏+]

标签:私有   美工   sha   ati   保护   索引   定义   tom   常量   

1.简单了解什么是接口

接口是由几个没有主体代码的方法定义组成的集合体,有唯一的名称,可以被类或其他接口所实现(或者也可以说继承)。接口在定义时,通常会在命名前添加I以区别于其他类(例如:IWorker接口);它定义了所有类要继承接口是所以要遵守的一些规范。接口只包含了成员的声明。成员的定义是派生类的责任。接下来实现一个简单的接口:

 1 class Program
 2     {
 3         static void Main(string[] args)
 4         {
 5             IWorker tom1 = new Tom1();
 6             IWorker tom2 = new Tom2();
 7             tom1.work("美工");
 8             tom2.work("页面");
 9 
10         }
11     }
12     public interface IWorker { void work(string s); }
13     class Tom1 : IWorker
14     {
15         public void work(string w)
16         {
17             Console.WriteLine("我的名字是Tom1,我的工作是" + w);
18         }
19     }
20     class Tom2 : IWorker
21     {
22         public void work(string w)
23         {
24             Console.WriteLine("我的名字是Tom2,我的工作是" + w);
25         }
26     }

以上定义了一个简单的工作接口(IWorker),通过两个不同的工人类去继承接口并实现接口的方法;从中必须注意子类在继承接口时,必须实现接口中所有的方法。

2.简单了解什么是抽象类

不能初始化的类被叫做抽象类,它们只提供部分实现,但是另一个类可以继承它并且能创建它们的实例,有未被实现的方法。抽象类不能使用new关键字去实例化。抽象类通过abstract关键字进行标识。抽象类同样只能通过接口和作为其它类的基类使用。接下来写一个简单的抽象类:

   abstract class Worker  //定义一个抽象的工作类,并定义一个抽象方法work和一个普通方法
    {
        public void Full()
        {
            Console.Write("请选择一种工作");
        }
        public abstract void work();
    }
    class Tom : Worker //定义一个Topy类实现抽象类中的抽象方法
    {
        public override void work()
        {
            Console.WriteLine("编程");
        }
    }

从以上可以看到,抽象类在被其派生类继承时,必须继承其抽象方法并实现,而抽象类中的普通方法可以不继承。

3.接口与抽象类的区别

1.接口用于规范,抽象类用于共性。抽象类是类,所以只能被单继承,但是接口却可以一次实现多个。

2.接口中只能声明方法,属性,事件,索引器。而抽象类中可以有方法的实现,也可以定义非静态的类变量。

3.抽象类可以提供某些方法的部分实现,接口不可以。抽象类的实例是它的子类给出的。接口的实例是实现接口的类给出的。

4.在抽象类中加入一个方法,那么它的子类就同时有了这个方法。而在接口中加入新的方法,那么实现它的类就要重新编写(这就是为什么说接口是一个类的规范了)。

5.接口成员被定义为公共的,但抽象类的成员也可以是私有的、受保护的、内部的或受保护的内部成员(其中受保护的内部成员只能在应用程序的代码或派生类中访问)。

6.此外接口不能包含字段、构造函数、析构函数、静态成员或常量。

7.我们在VS中实现接口时会发现有2个选项,一个是实现接口,一个是显示实现接口。实现接口就是我们平常理解的实现接口,而显示实现接口的话,实现的方法是属于接口的,而不是属于实现类的。

参考文献

接口与抽象类区别参考之Lost丶先生

  参考地址:http://www.runoob.com/csharp/csharp-interface.html

 

.NET 抽象类与接口的简述

标签:私有   美工   sha   ati   保护   索引   定义   tom   常量   

原文地址:https://www.cnblogs.com/yuyi211/p/10519097.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!