C#干货 抽象类,类和接口

抽象类是类的基础形态

比如 人是一个基础类 也是个抽象类

可以根据人 实现 男人和女人类

 

接口 是一组方法的集合

比如人 实现了一个基本的方法为 玩

男人 玩球 玩电脑    

女人 玩手机 玩游戏。

那么玩就是一个接口 可以独立抽象出来

只要去 玩 那么不管你玩什么都可以运行。

好了上干货 ,我们来实现这个

 

 1         //实现玩 接口
 2         interface Iplay
 3         {
 4             void Play();
 5         }
 6         //基类,抽象类
 7        public abstract class Per:Iplay
 8         {
 9             //保护型 只能在继承类中使用
10             protected string name;
11 
12            //公开性 全部可以访问
13             public abstract string Name { get; set; }
14 
15            //抽象 玩接口
16             public abstract void Play();
17 
18            //在基类中实现全部继承类中都可以使用的方法
19             protected string Sex { get { if (Sex == null) { return "男性"; } else { return this.Sex; } } set; }
20         }
21         //男人类
22         class Man : Per
23         {
24              
25 
26             public override void Play()
27             {
28                 Console.WriteLine(Name +Sex+ "玩游戏");
29                 //throw new NotImplementedException();
30             }
31 
32             protected override string Name
33             {
34                 get
35                 {
36                     return this.name;
37                    
38                 }
39                 set
40                 {
41                     this.name = value;
42                     
43                 }
44             }
45         }
46 
47         //女人类
48         class Women : Per
49         {
50 
51             public override string Name
52             {
53                 get
54                 {
55                     return this.name;
56                 }
57                 set
58                 {
59                     this.name = value;
60                 }
61             }
62 
63             public override void Play()
64             {
65                 Console.WriteLine(Name + this.Sex + "玩电脑");
66                 //throw new NotImplementedException();
67             }
68         }

最后是使用方法

 

 1         [STAThread]
 2         static void Main()
 3         {
 4             Application.EnableVisualStyles();
 5             Application.SetCompatibleTextRenderingDefault(false);
 6                  
 7 
 8             Man m = new Man();
 9             m.Name = "男人";            
10             m.Play();
11         }

 

posted @ 2016-12-26 14:36  迅捷之风  阅读(2108)  评论(0编辑  收藏  举报