c# 面向对象编程(总结)

时间:2022-10-18 17:25:09

属性

  1、隐藏成员变量,增加程序的灵活性、健壮性。

  2、可以实现对数据验证,看数据是否合法。

  3、属性可认为是中特殊的方法,并不仅仅是封装数据。

  4、vs.net插入代码段:再续插入属性的地方输入prop,然后按<Tab>则系统回自动填充属性框架。减少了代码的编写量。

构造函数与析构函数

  1、构造函数用于对实例变量的初始化,无返回参数,且不可用void显示表示返回类型为空。其函数名和类名必须完全相同。另外,构造函数可调用该类中其他构造函数(this关键字实现),也可调用基类中构造函数(base关键字实现)。

  2、析构函数与构造函数相对应,其在对象被释放之前调用。其函数名表示方法为在类名前加‘~’。其执行时间是不确定的,因为c#中内存回收是通过CLR实现的,当内存可用资源小于下限时,才进行垃圾回收,此时析构函数才将要被执行。

重载

  1、方法重载:同一类中,方法名相同,参数类表不同。

  2、运算法重载:public static 返回类型 operator 符号(参数列表){}

  3、类型转换运算符:public static explicit(显式转换)|implicit(隐式转换) operator 转换目的类型(参数类表){}

继承

  1、方法隐藏:访问修饰符 new 返回类型 方法名(参数列表){}

  2、虚方法:访问修饰符 virtual 返回类型 方法名(参数列表){}

  3、方法重写:访问修饰符 override 返回类型 方法名(参数列表){}

说明:

    1、new方法隐藏,对象所执行的方法由对象所定义的类型决定。

    2、virtual、override虚方法,对象所调用的方法由对象的实际类型所决定。

抽象类与密封类

  1、抽象类由关键字abstract定义,其不能实例化变量。

  2、抽象类可含有抽象方法(只含有方法签名,不含有方法体):访问修饰符 abstract 返回类型 方法名(参数列表);

  3、派生类继承抽象类时,必须重写抽象类中的抽象方法。

  4、密封类由关键字sealed定义,其不能有派生类。

this和base

  1、this表示当前实例,对于静态成员,不能使用this。

  2、base表示当前类的基类,可以使用base调用父类的方法。

  3、这连个关键字还可实现构造函数的调用(见上);