引入
- 在面向对象编程中,抽象类和接口是两个经常被用到的语法概念,是面向对象的四大特性,以及很多设计模式、设计思想、设计原则编程实现的基础。 比如,我们可以使用接口来实现面向对象的抽象特性,多态特性和基于接口而非实现的设计原则,使用抽象类来实现面向对象的继承特性和模板设计原则等
- 不过,并不是所有的面向对象编程语言都支持这两个语法概念,比如,C++只支持抽象类,不支持接口;Python两个都不支持。尽管有些编程语言没有提供现成的语法来支持接口和抽象类,我们仍然可以通过一些手段来模拟实现这两个语法概念。
- 问题是:接口和抽象类的区别是什么?什么时候用接口?什么时候用抽象类?抽象类和接口存在的意义是什么?能解决哪些编程问题?