C#基础复习(三) 对象和封装

一·封装

C#中的访问修饰符有以下几种:public,protected, private, internal。其中public为公开,可外部访问公开成员;protected,该类和子类对象可访问;private,私有,仅该类可访问,私有成员子类不继承;internal,同一个程序集的可访问。

二·方法

方法传入的参数主要有三种:值传递,引用传递,按输出传递。其中,值传递会申请新的内存存放,故新旧值不受影响;引用传递,是直接传递存放值的内存地址,值修改后,对应的传入值或覆盖原值,使用关键字reg标记;按输入传入,关键字out。

三·类

类的定义以关键字class定义,默认的访问修饰符是internal,成员的默认访问修饰符是private。

类的静态成员:使用static关键字来标识静态成员,表示类中只有一个该成员。且静态变量可以在成员函数或类的定义外部进行赋值。若一个方法前有关键字static,表示是一个静态方法,该方法中只能调用静态变量。且静态函数在对象被创造前就存在。

四·继承

基类和派生类:派生类继承了基类的成员,不需要重新定义已有的成员变量和方法。一个类可以派生自多个类或接口。注意:C#不支持多重继承,需要使用接口interface实现(例如:C同时继承A和B);可以多层次继承(C继承B,B继承A).

五·多态性

多态指一个行为具有不同的表现形式和形态。多态一般表现为“一个接口,多个功能”。静态多态性在编译时进行函数的响应。动态的多态性在运行时进行函数的响应。

静态多态性主要有两种:函数重载和运算符重载。

函数重载,可以定义同名的方法,但要求参数类型,或参数个数不同。

动态多态性主要通过定义抽象类(关键字abstract),抽象类中定义抽象方法,该方法不实现。派生类继承抽象类后,派生类必须实现基类的抽象方法(override)。

需要注意:抽象类不可创建一个实例;抽象类方法必须定义在抽象类中;且抽象类不可被定义为密封类(sealed,表示该类不可被继承)。

当一个类中的方法,在派生类中需要被实现时,可以增加关键字virtual,表示一个虚方法。虚方法在不同的派生类中可以有不同的实现。

虚方法与抽象方法的区别:

1.虚方法有实现部分,抽象方法不能有实现部分。

2.抽象方法必须定义在抽象类中,虚方法没有限制。

3.抽象方法必须在派生类中覆写(override),而虚方法可以不覆写。

override(覆写),overload(重载)

你可能感兴趣的:(C#基础复习,c#,开发语言)