接口是为了扩展功能而来的。例如,狗和猫都有吃这个功能。所以我们在设计的时候就可以把吃抽取出来为一个接口,然后让猫类,狗类分别实现这个接口,实现不同的吃的具体功能。而抽象类是对多种类型共性的抽取。例如狗和猫两个类型就都是动物类型,狗和猫都有叫的动作,都有毛的属性,但是具体的叫和毛不相同,此时就可以把叫的动作和毛的属性提取出来变成一个抽象类,里面有抽象方法”叫”,有成员变量”毛”,然后猫类继承动物类时就实现具体的叫法和特定的毛的属性,狗类也类似。这就是抽象类的功能:抽取出一组类的内在共有特性成为一个抽象类,然后具体一个类定义时再继承抽象类来具体化共有属性 |