接口实际上是抽象类的一个特例,抽象类不能被实例化,不能被多继承,里面可以包含非抽象的方法,表示的是一个IS A的关系,而接口可以多实现,定义的是一种契约,是一种LIKE A的关系,在我们的编程中根据面向对象的思想本质的东西应该定义为抽象类,类似的东西定义为接口。在实际 的编程中两个应该配合起来使用,这样更能够反应面向对象的思想。