概述
继承是指一个对象(淡水鱼)直接使用另一对象(鱼)的属性和方法
。像这个图,其中的带鱼继承了咸水鱼,那么咸水鱼具有的特征,带鱼都会有的,但是带鱼具有的特征,咸水鱼不一定有。
继承
父类(鱼),也称为基类
:
2.子类(淡水鱼),也称为派生类
:
使用冒号实现继承关系,冒号后面的是基类,前面的是子类,并且在C#中一个类只能继承一个基类。基类可以被多个子类继承。 使用继承可以提高代码的复用率。
- 使用
我们在Student中没有定义任何的属性和方法,但是在子类Student中是可以使用基类中定义的属性和方法的。
4.子类具有自己的属性和方法
如果实例化一个 基类:
此时,你会发现,在子类中定义的属 性和方法是不能在基类中访问的。
隐藏基类方法
由于我们在基类中定义的方法在子类中可以访问,但有时候,我们需要在子类中定义一个与基类中某个方法同名,此时就要用到隐藏基类的方法:
在子类的方法前使用new修饰,该方法隐藏父类签名(方法名)相同的方法。
virtual方法与重写父类方法
如果在子类中不再使用从父类继承来的方法,可以该方法前面使用override修饰,覆盖该方法,同时父类该方法使用virtual修饰符。
多态和重载
多态的定义:同名方法表现出的不同操作和功能,在C#中可以使用方法的重载表现多态性。重写也属于多态的一种。这样多态包含2种:重写和重载。
在多态中,包含两种重写和重载,重写属于运行期的多态,重载属于编译期的多态。
方法的重载的特点
:
- 方法名必须相同
- 返回类型不同。
- 参数类型不同。
- 参数列表(个数)不同。
密封类
密封类是指不能被继承的类,但可以继承别的基类。使用sealed定义:密封类不能做为父类使用,但可以作为子类使用。
/// <summary>
/// 密封类
/// </summary>
public sealed class Class11
{
}
密封类是一种特殊的类,它不能派生子类。
面向对象的编程
面向对象编程:是将我们实际生活中的对象经过抽象,将它定义成为一个类,通过类的属性和方法来模拟生活中的这个对象。这样使得程序更容易结构化、抽象起来更方便。
面向对象的三大特性是:封装、继承、多态。