类和接口的定义:

  • 类用class关键字定义,而接口用Interface关键字定义。

  • 可以使用public , internal 关键字定义类和接口的可访问性;

  • 类可以定义为abstract或sealed,以控制继承性;

  • 父类和父类接口在一个用逗号分隔的列表中指定,放在类或接口名和一个冒号的后面。

  • 在类定义中,只能指定一个父类,且必须是列表中的第一项;

1.       类的定义

 

18. C# -- 类,接口,构造函数,析构函数,_第1张图片

2.  抽象类(可继承,不能实例化

18. C# -- 类,接口,构造函数,析构函数,_第2张图片

3.  密封类(不可继承)

18. C# -- 类,接口,构造函数,析构函数,_第3张图片

4.  类的继承

18. C# -- 类,接口,构造函数,析构函数,_第4张图片

内部类可以继承于一个公共基类,但公共基类不能继承于一个内部类。

类继承于接口和类,所有接口成员都必须在支持该接口的类中实现。

18. C# -- 类,接口,构造函数,析构函数,_第5张图片

5. 类中可以使用的访问修饰符组合:

18. C# -- 类,接口,构造函数,析构函数,_第6张图片

6. 接口的定义,接口不包含实现代码,都在类中实现。

18. C# -- 类,接口,构造函数,析构函数,_第7张图片

7. 接口的继承

18. C# -- 类,接口,构造函数,析构函数,_第8张图片

8. System.object基类

所有的类都继承于system.object

 Object 包括的方法:

18. C# -- 类,接口,构造函数,析构函数,_第9张图片

18. C# -- 类,接口,构造函数,析构函数,_第10张图片

GetType()typeof()的使用:

18. C# -- 类,接口,构造函数,析构函数,_第11张图片

9. 构造函数和析构函数:编译器会自动添加它们,初始化和清理对象

构造函数和析构函数:

  • 类自动带有默认的构造函数和析构函数的实现代码,我们很少需要提供自己的析构函数,可以使用可访问性,类名和可能需要的任何参数来定义构造函数。

  • 基类的构造函数在派生类的构造函数之前执行。

  • 使用thisbase构造函数初始化关键字,可以控制类中这些构造函数的执行顺序;

 

构造函数执行顺序:

18. C# -- 类,接口,构造函数,析构函数,_第12张图片

18. C# -- 类,接口,构造函数,析构函数,_第13张图片

10.析构函数

18. C# -- 类,接口,构造函数,析构函数,_第14张图片

.Net Framework 能确保调用Finalize () 方法

 

11. Class view中的符号

 

18. C# -- 类,接口,构造函数,析构函数,_第15张图片

18. C# -- 类,接口,构造函数,析构函数,_第16张图片

 

12.对象浏览器:

View-object browser

18. C# -- 类,接口,构造函数,析构函数,_第17张图片

添加类,所创建的类名以文件名命名。

Add-new item

13.类图:show base type

18. C# -- 类,接口,构造函数,析构函数,_第18张图片

18. C# -- 类,接口,构造函数,析构函数,_第19张图片

18. C# -- 类,接口,构造函数,析构函数,_第20张图片

 

14.类库项目:

类库:

  • 可以创建只包含类定义的类库项目,这些项目不能直接执行,而必须通过客户代码在可执行程序中访问,VSVCE为创建,修改和测试类提供了各种工具

类系列:

  • 类可以组合为系列,以提供公共的操作或共享公共的特性。为此,可以重共享的基类(可以是抽象的)中继承,或者实现接口;

 

类库项目编译为.dll程序集,在其他项目中添加对类库项目的引用,就可以访问它的内容。Project—add reference