写在前面:
到了这个阶段,接口和抽象类的定义,大家都能记住,但是可能自己来解释什么时候来使用,或者为什么这样用的话,可能有点迷糊。当然基础不太好的可以看这两片博客文章1、文章2,第二篇文章可能会更好懂一些。
个人理解:
- 接口:接口是对行为的抽象。
- 实现了某一个接口,就具备了接口所对应的行为。
- 比如飞行这个功能,可以抽象为一个接口。想飞的物体必须要实现这个接口
- 接口的抽象是自上而下的,只有实现这个接口,物体才具有这些功能(当然实现某一个功能可能需要很多抽象方法)。
- 抽象类:
- 抽象类主要目的是为了代码复用,强调的是所属关系。
- 抽象类,字面上理解是将物体进行抽象,就是挖掘本质。
- 比如:猫,狗,他们的本质就是宠物这个抽象类,类里面可以有各种属性,方法。比如吃,叫,撒娇。如果想要创建其他宠物类,可以继承宠物这个抽象对象,可以复用宠物的相同特征。
- 抽象类是自下而上的,首先要有猫狗,我们才能抽象出宠物这个抽象类的本质。
易错点:
- 抽象类中的抽象方法(只有抽象方法,其他都是正常的)可以是public,protect,缺省,三者修饰的,而接口中的抽象方法只能用public来修饰(默认就是public abstract修饰)
- 抽象类和接口中都可以定义静态成员变量,但是接口中的必须是public final static修饰,同时默认也是,而且需要直接定义时候进行初始化。
- 接口中不能有静态方法,抽象类中可以有。