抽象类------芙蓉姐姐(人人都有打破思想保守旧传统的能力,但是只有人家芙蓉姐姐有胆量);
接口------蜘蛛侠、超人(实现了接口就相当于你有了某种特殊功能)。
------------------------------------------------------------------------------------------------------------------------------------
接口和抽象类的区别大了。
首先从属性上来说:
1、首先是继承关系,接口是多继承的关系,接口与接口之间是多继承的,类与接口之间是多实现的关系,而抽象类是一个类,由类对他进行单继承,不能多继承,接口不能继承抽象类,但是抽象类可以实现多接口;接口不能继承类或抽象类,但是抽象类可以继承抽象类和普通类。
2、方法以及属性定义方面,抽象类可以定义任何属性的方法以及实现方法,如private、protected、native等等(当然抽象方法有所限制),但是接口定义的方法不能够有实现,且属性必须为public的实例方法,不能有native等定义等等,接口定义的属性必须是public static final的静态常量。
然后从软件开发阶段来讨论:
接口是属于设计后阶段的定义的,用来协同各个模块以及各个功能之间通信与调用定义的。而抽象类是属于开发前阶段定义的,用来实现功能模块的一些基础的或者公有的或者默认的代码,以及规定一些变动功能与实现所需要依赖的规范。
---------------------------------------------------------------------------------------------------------------------------------------------
From:http://bbs.csdn.net/topics/300130153