Java中interface和abstract class的区别和联系

interface: interface类似于class,但是只包含函数(只规定参数、函数名、返回类型,不规定函数体)。目的是用来建立类和类之间的一种“协议”。一个类可以实现多种接口,来模拟多重继承。

abstract class: 可以定义函数体,也可以不定义。抽象类中的方法必须是abstract,只要存在一个abtract方法,那么类也必须是abstract。类可以实现多个接口,但是只能继承单一的类。

那么到底应该使用一个接口还是一个抽象类呢?

使用接口,我们可以同时获得抽象类以及接口的好处。所以假如想创建的基础类没有任何方法定义,

那么无论如何都愿意使用接口,而不要选择抽象类。事实上,如果事先知道某种东西会成为基础类,那么第

一个选择就是把它变成一个接口。只有在必须使用方法定义的时候,才应考采用抽象类。

posted on 2015-02-05 14:04  醉清风JM  阅读(262)  评论(0编辑  收藏  举报

导航