类和接口的定义:

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

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

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

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

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

1.       类的定义

 

wKioL1VVbRzhDD_qAAIWCXDgVLM073.jpg

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

wKiom1VVa6Kyue74AABkbvaI-4Y541.jpg

3.  密封类(不可继承)

wKioL1VVbR6gFwpeAACXN9MKvd4584.jpg

4.  类的继承

wKiom1VVa6XCW0LfAAD00XMjN8o333.jpg

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

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

wKioL1VVbSDiXQOpAAE50kmm4pE961.jpg

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

wKiom1VVa6jwr4qNAAJn6VeZ_H4350.jpg

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

wKioL1VVbSbQMNANAALeO5AHGAI634.jpg

7. 接口的继承

wKiom1VVa62wGTEdAAESuuDw21c087.jpg

8. System.object基类

所有的类都继承于system.object

 Object 包括的方法:

wKioL1VVbSqhmrZrAALYIuagDJY578.jpg

wKiom1VVa7SyhbWuAAS4I68hi5s048.jpg

GetType()typeof()的使用:

wKioL1VVbTCRp63bAAG2QAkJ7K8750.jpg

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

构造函数和析构函数:

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

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

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

 

构造函数执行顺序:

wKiom1VVa7fimdt2AAEeMHqWIJY049.jpg

wKioL1VVbTbDUZwLAAQQce6_XFk880.jpg

10.析构函数

wKiom1VVa7zjo6m-AABWEb9Lc2g641.jpg

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

 

11. Class view中的符号

 

wKioL1VVbTqyW0ukAAJv415H3jA562.jpg

wKioL1VVbTyDBviMAAGeu46Q8XQ418.jpg

 

12.对象浏览器:

View-object browser

wKiom1VVa8vwUtoSAAaK_JW7KZ0533.jpg

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

Add-new item

13.类图:show base type

wKioL1VVbUeSN9-ZAAHi2PyKl-Q687.jpg

wKiom1VVa9ChOn77AAKLuU4M8JI527.jpg

wKioL1VVbUyA8lH1AAJMvEL7VHY877.jpg

 

14.类库项目:

类库:

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

类系列:

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

 

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