Java中抽象类实现接口

来源:互联网 发布:unity3d 联网游戏视频 编辑:程序博客网 时间:2024/04/29 10:50

转载自http://blog.csdn.net/youyedemeng/article/details/7109754

1.抽象类肯定可以实现接口; 
2.这不是有没有意义的事情,是一种思想,当你自己写的类想用接口中个别方法的时候(注意不是所有的方法),那么你就可以用一个抽象类先实现这个接口(方法体中为空),然后再用你的类继承这个抽象类,这样就可以达到你的目的了,如果你直接用类实现接口,那是所有方法都必须实现的; 
3.这种思想在java.swing.event包中运用的非常多,里面一般以Adapter为后缀的都是抽象类,它们都实现了特定的事件接口,大家可以看看。 
4.抽象类定义在接口与真正的实现类之间有一个重要的作用,就是过滤掉一些不需由真正的实现类重写的方法。举一个例子,譬如说HttpServlet这个抽象类类中有init(),doGet(),doPost(),destroy()等方法,但是真正要让程序员实现的只有doGet(),doPost(),就是因为HttpServlet中定义了对一些方法的默认实现,这样一个类在扩展它时,就不必重写所有HttpServlet或者其父类所实现的所有接口的所有方法。经常是这样,即使我们重写init()方法,也只是调用super.init().

举个例子 
“桌子”是一个 interface,它要有一个桌面能用来摆放东西。 
“圆桌”是“桌子”的 abstract class,它定义了桌面是圆的。 
“正圆桌”继承自“圆桌”,它的桌面是圆形中的正圆。 
“椭圆桌”继承自“圆桌”,它的桌面是圆形中的椭圆。 

在Java中,如果抛开 Object 类,那么 Interface 就是最高层次的抽象,其次是 abstract class,接下来是 class,最后是程序运行的时候产生的对象。

0 0
原创粉丝点击