概念
通常在编程语句中用 abstract 修饰的类是抽象类。
抽象类是不完整的,它只能用作基类。在面向对象方法中,抽象类主要用来进行类型隐藏和充当全局变量的角色。
在面向对象的概念中,所有的对象都是通过类来描绘的,但是反过来,并不是所有的类都是用来描绘对象的,如果一个类中没有包含足够的信息来描绘一个具体的对象,这样的类就是抽象类。
比如,生活中车有很多的类别,汽车,火车,摩托车,自行车,它们是不同的,但是他们又属于车一类,车就是一个抽象类,也可以把抽象类理解为把不同种类的东西中一样的地方提取出来的东西就是抽象类。
特征
- 抽象类不能被实例化。
- 抽象类可以包含抽象方法和抽象访问器。
- 不能把抽象类用密封(sealed)来修饰,因为采用 sealed 修饰符的类无法继承,而 abstract 修饰符要求对类进行继承。
- 继承了抽象类的非抽象类必须实现抽象类所包含的抽象方法和抽象访器
用法
定义一个车的抽象类,包含一个自行车的抽象方法,如图 :
用一个非抽象类继承车的抽象类,如图:
上面说了抽象类包含了抽象方法的用法,接下来我们用抽象类包含一个非抽象方法:
用一个非抽象类继承车的抽象类,如图:
调用A类去使用自行车方法:
结果如图:
也就是说一个抽象类可以包含抽象和非抽象方法,当一个类继承于抽象类,那么这个派生类必须实现所有的的基类抽象方法。如果有不足的地方希望各位指点一下。