Abstraction 是指在 OOP 中让一个类抽象的能力。一个抽象类是不能被实例化的。类的功能仍然存在,它的字段,方法和构造函数都以相同的方式进行访问。你只是不能创建一个抽象类的实例。
如果一个类是抽象的,即不能被实例化,这个类如果不是子类它将没有什么作用。这体现了在设计过程中抽象类是如何被提出的。
一个父类包含子类的基本功能集合,但是父类是抽象的,不能自己去使用功能。
声明一个抽象方法有两个结果:
- 如果一个类中含有一个抽象方法,类必须也是抽象的。
- 任何一个子类必须覆盖这个抽象方法,或者继续将它声明为抽象方法。
子类继承一个抽象方法,必须要去覆盖他。如果不这样做的话,它们必须将其继续声明为抽象,或在它们的子类中去覆盖它们。
最终,后代类不得不去实现抽象方法;否则你会一直有一个不能被实例化的抽象类。