20141014C#面向对象抽象方法,抽象类,接口

里氏代换原则。可以用子类的对象替代父类的对象。

抽象依赖原则。依赖——形参,关联

一、抽象方法:

在一些父类中,某些行为不是非常明确,因此无法用代码来具体实现,但是类必须具备此方法,因此把这样的方法定义为抽象方法。abstract

特点:1.只声明,不实现。2.加abstract关键字。

eg:

 1 public abstract class Ren //类中含有抽象方法,此类也必须是抽象类。
 2 {
 3   public abstract void Eat(); //以分号结束,没有花括号
 4 }
 5 class Chinese:Ren
 6 { 
 7   public override void Eat()
 8   {
 9     Console.WriteLine("用筷子吃饭。");
10   }
11 }

 

二、抽象类:

无法被实例化的类。关键词是abstract 。凡是带有abstract关键词的类,都无法new 出来。

凡是带有抽象方法的类,肯定是抽象类;抽象类却不一定包含抽象方法。

构造方法、静态成员方法不能被声明为抽象方法。

一个非抽象类必须实现从父类继承来的所有抽象方法。

不能创建抽象类的实例。

三、接口 interface: 极度抽象的类。无成员变量,无实例方法,无实例属性,只有抽象方法或抽象属性。接口就是一个规则。

接口用interface关键词来定义。

接口中的方法都是抽象的,因此无需加abstract。

接口中的方法都是公有的,无需加访问修饰符。

生活中的例子:标准,协议

接口可以继承父接口

一个类可以实现(继承)多个接口

eg:

 1    public interface IUSB
 2     {
 3         void Start();
 4         void Stop();
 5     }
 6     public class Camera : IUSB
 7     {
 8         public void Start()
 9         {
10             Console.WriteLine("打开摄像头了");
11         }
12 
13         public void Stop()
14         {
15             Console.WriteLine("摄像头关闭了");
16         }
17     }
18 
19     public class UDisk : IUSB
20     {
21         public void Start()
22         {
23             Console.WriteLine("U盘启动了");
24         }
25 
26         public void Stop()
27         {
28             Console.WriteLine("U盘退出了");
29         }
30     }
31 
32     public class Computer
33     {
34         public void CheckUSB(IUSB usb)
35         {
36             usb.Start();
37         }
38         public void CloseUSB(IUSB usb)
39         {
40             usb.Stop();
41         }
42     }

 

命名空间:相当于一个包。对类进行分类管理的工具。

一般的命名规则:公司名.项目名.模块名

项目名:用给人类,标识出这个项目是做什么的

程序集:程序编译出来的.exe或.dll文件。程序集的名字就是编译出来的EXE或dll的名字。

20141014C#面向对象抽象方法,抽象类,接口

上一篇:C#面向对象(一)


下一篇:3DS MAX之主菜单File的理解