C#--结构、类与属性

结构的使用

C#--结构、类与属性

C#--结构、类与属性

C#--结构、类与属性

C#--结构、类与属性

C#--结构、类与属性


枚举

C#--结构、类与属性

C#--结构、类与属性

C#--结构、类与属性

C#--结构、类与属性


C#--结构、类与属性

C#--结构、类与属性


C#--结构、类与属性

C#--结构、类与属性


C#--结构、类与属性


类的声明

C#--结构、类与属性

开发中都在项目创建类文件:

C#--结构、类与属性

C#--结构、类与属性


实例化类:

C#--结构、类与属性

C#--结构、类与属性

this 关建字 (表示自己)

C#--结构、类与属性

属性的使用

C#--结构、类与属性

C#--结构、类与属性

C#--结构、类与属性

没有使用属性的方法:

C#--结构、类与属性

C#--结构、类与属性


C#--结构、类与属性


C#--结构、类与属性


对赋值进行限定:

C#--结构、类与属性

C#--结构、类与属性


对取值进行限定:
C#--结构、类与属性

C#--结构、类与属性


自动属性:
C#--结构、类与属性
C#--结构、类与属性


属性的两个方法:
C#--结构、类与属性

通常称为访问器。


属性分为四种:

C#--结构、类与属性


给字段添加属性的快捷键 Ctrl+r+e

C#--结构、类与属性

C#--结构、类与属性


构造函数和析构函数

C#--结构、类与属性

C#--结构、类与属性

C#--结构、类与属性


C#--结构、类与属性

重载的构造函数
C#--结构、类与属性

C#--结构、类与属性


注意:默认的会被覆盖

C#--结构、类与属性

解决的方法:
C#--结构、类与属性


析构函数

C#--结构、类与属性

C#--结构、类与属性


类的继承


C#--结构、类与属性

C#--结构、类与属性


在项目中创建基类(父类)
Clerk
C#--结构、类与属性


创建派生类(子类)继承基类:

Sales

C#--结构、类与属性

TechnicalSupport

C#--结构、类与属性

C#--结构、类与属性


类继承注意的规则

C#--结构、类与属性


单根性:

C#--结构、类与属性


查看类图:

C#--结构、类与属性


C#--结构、类与属性


派生类定义与基类同名的成员,则覆盖基类成员

C#--结构、类与属性


C#--结构、类与属性


派生类自然继承类的成员,但不能继承基类的构造函数的成员

父类添加构造函数:

C#--结构、类与属性

子类不能继承:
C#--结构、类与属性

子类不写参数默认调用父类的无参函数

C#--结构、类与属性

C#--结构、类与属性

如果子类想调用必需添加构造函数:

第一种方法: 在父类中再写一个无参的构造函数,
在每个子类当中都需要再进行一次构造函数的重写与各个字段的初始化

C#--结构、类与属性

C#--结构、类与属性


第二种方法:

使用关键字:base()

这样无需在父类声明无参构造函数

C#--结构、类与属性

C#--结构、类与属性

C#--结构、类与属性


C#--结构、类与属性


sealed关键字

C#--结构、类与属性

C#--结构、类与属性

C#--结构、类与属性


类的封装

C#--结构、类与属性


C#--结构、类与属性


C#--结构、类与属性


private

C#--结构、类与属性

C#--结构、类与属性


protected

C#--结构、类与属性


C#--结构、类与属性


public
跨项目的一个访问
C#--结构、类与属性


C#--结构、类与属性

C#--结构、类与属性

C#--结构、类与属性


访问修饰符

C#--结构、类与属性


C#--结构、类与属性


C#--结构、类与属性

C#--结构、类与属性


类的封装

C#--结构、类与属性


C#--结构、类与属性


C#--结构、类与属性


虚方法实现多态

C#--结构、类与属性

C#--结构、类与属性


C#--结构、类与属性


C#--结构、类与属性


抽象方法实现多态

C#--结构、类与属性


C#--结构、类与属性


C#--结构、类与属性


C#--结构、类与属性


C#--结构、类与属性


解决的方法:
C#--结构、类与属性