面向对象编程的三大特性之一:继承
C#中允许类派生新的类,而新的类继承了基类的成员;继承中要注意基类的访问修饰符(public、internal、protected、private);
面向对象编程的的继承性和多态性,主要是通过接口来体现的。
接口:用关键字interface修饰的类,在接口中可以定义属性、方法、事件、索引器,而且只能是定义其规范(返回值、名称、参数列表),不能有方法体;接口中定义的方法都默认是public的,但不能在定义这些方法的时候去写上修饰符;
虚方法:用关键字virtual修饰,子类中可以通过使用override关键字对基类中的虚方法进行重写;
抽象类:用关键字abstract修饰,只定义方法的返回值、名称、参数列表,不含方法体;抽象类和接口一样,不能被直接实例化;
接口中只能定义没有实现的成员,而抽象类中除了未实现的抽象方法,还可以定义已经实现(含方法体)的方法;
接口不能被实例化,但实现接口的类可以被实例化;实现接口中方法的方式有两种:显示实现和隐式实现;
实现了接口的派生类,必须实现接口中的所有成员,可以说接口规定了派生类的基本行为,因此接口也可以被看成是一种类的模板;
- 一个类只能继承一个抽象类,但可以实现多个接口;
- 抽象类可以实现多个接口;