面向对象(抽象类)

抽象类:
抽象类,只为继承而出现,不定义具体的内容,只规定该有哪些东西;
一般抽象类中只放置抽象方法,

 

1、关键字 abstract 
2、抽象类可以包含抽象方法和普通方法
3、abstract关键字可以把方法变为抽象方法,抽象方法可以没有函数体
4、抽象类无法被实例化,抽象类主要做为一个基类,让其他类继承。5、abstract关键字和sealed关键字(禁止继承)不能同时出现
6、如果一个子类继承自抽象类,那么子类中必须实现所有的抽象方法
7、如果子类中没有实现父类的抽象方法,那么该子类必须是抽象类
8、如果一个类里面包含抽象方法,那么该类一定是抽象类

 

 

接口:
极度抽象的类。

接口与抽象类的区别:
1、写法区别
关键字:interface 
没有class关键字 
写法 interface 类名{} 类名规则:一本用I开头
不用写public,因为接口本身就是public,不用写abstract 因为接口里面所有的都是抽象的

2、接口里面不能包含普通成员
3、凡是继承接口的类,全部要实现接口里面的方法

 

接口的作用:

可以将程序拆分成多个模块,方便多人开发。

定义了子类了子类必须包含的功能


接口内没有函数体,只是规定需要进行哪些操作,但是没有具体的实现方法,有子函数自己定义使用。

 

//类库
有些时候我们需要用到别人写的类

1、如果该类是源代码类 .cs文件
起那个文件拿到项目中,可以选择添加新建项或选择现有项
引用相应的命名空间

2、如果该类不是源码,而是编译后的 .dll文件(编译后的类库)
将文件拿到项目中,添加引用--浏览--找到.dll文件
引入相应的命名空间

 

 

复制代码
 1 using System;
 2 using System.Collections.Generic;
 3 using System.Linq;
 4 using System.Text;
 5 using System.Threading.Tasks;
 6 
 7 namespace 抽象类
 8 {
 9     //定义抽象类
10     public abstract class DongWu
11     {
12         public void Run()
13         { 
14         }
15         public abstract void Eat();//抽象方法可以没有函数体
16        
17  
18     }
19 
20     public class Ren : DongWu
21     {
22         public override void Eat()
23         {
24             Console.WriteLine("吃熟食");
25         }
26  
27     }
28 
29     //定义接口
30     interface IUSB
31     {
32         //开始读取USB
33         void Start();
34 
35         //关闭USB
36         void Stop();
37  
38     }
39 
40     //做一个鼠标的类来实现USB接口
41     class ShuBiao:IUSB
42     {
43         public void Start()
44         {
45             Console.WriteLine("鼠标启动了");
46         }
47         public void Stop()
48         {
49             Console.WriteLine("鼠标停止了");
50         }
51     
52     }
53 
54 
55     class Program
56     {
57         static void Main(string[] args)
58         {
59             //DongWu dw = new DongWu();--错误,抽象类无法被实例化
60             Ren  r=new Ren();
61             r.Eat();
62             Console.ReadLine();
63             
64         }
65     }
66 
67 
68 
69 
70 
71 }
posted @ 2016-08-22 08:43  zl大王派我来巡山  阅读(158)  评论(0编辑  收藏  举报