- 抽象类本质是类,是对一组类的抽象,指的是一组类的相似性。(另外,普通类是对一组对象的抽象,即抽象类是更高级的抽象)。
- 接口只强调了功能(行为,函数)的相似性,但是抽象类不仅强调了功能(行为,函数)的相似性,也强调了数据属性的相似性。
- 抽象类是一个介于类和接口之间的一个概念,有类的性质,也有接口的性质,可以用来实现归一化设计。
- 归一化实例:例如有苹果、香蕉、桃子的类,从这些类中抽取相同的内容就是水果这个抽象类。吃水果时,要么是吃一个具体的苹果,或一个具体的香蕉,而永远吃不到一个叫“水果”的东西。归一化就是eating(),不管是哪个对象调用,都能实现“吃”的方法。再例如,奥迪、奔驰也好,有drive(),开的时候无需关心是哪个对象,操作手法(开车的手法,函数调用)都一样。归一化可以处理接口兼容的对象。