Java基础:接口和抽象类

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接: https://blog.csdn.net/apache_z/article/details/102238822

写在前面:

到了这个阶段,接口和抽象类的定义,大家都能记住,但是可能自己来解释什么时候来使用,或者为什么这样用的话,可能有点迷糊。当然基础不太好的可以看这两片博客文章1文章2,第二篇文章可能会更好懂一些。

个人理解:

  1. 接口:接口是对功能的抽象。比如飞行这个功能,可以抽象为一个接口。想飞的物体必须要实现这个接口,同时这个物体也可以实现更多的接口。比如:飞机,它实现了飞行这个接口,同时它还有载人这个功能,同样实现了载人的接口。也像第二篇博主说抽象类是自上而下的,只有实现这个接口,物体才具有这些功能(当然实现某一个功能可能需要很多抽象方法)。
  2. 抽象类:抽象类,字面上理解是将物体进行抽象,就是挖掘本质。比如:猫,狗,他们的本质就是宠物这个抽象类,类里面可以有各种属性,方法。比如吃,叫,撒娇。这些都是宠物所共有的。也像第二篇博主说抽象类是自下而上的,首先要有猫狗,我们才能抽象出宠物这个抽象类的本质。

易错点:

  1. 抽象类中的抽象方法(只有抽象方法,其他都是正常的)可以是public,protect,缺省,三者修饰的,而接口中的抽象方法只能用public来修饰(默认就是public abstract修饰)
  2. 抽象类和接口中都可以定义静态成员变量,但是接口中的必须是public final static修饰,同时默认也是,而且需要直接定义时候进行初始化。
  3. 接口中不能有静态方法,抽象类中可以有。

猜你喜欢

转载自blog.csdn.net/apache_z/article/details/102238822