面试题:请说说抽象类和接口的区别
抽象类,使用abstract关键字修饰的类为抽象类,一般来说,含有抽象方法的类就需要定义为抽象类,但是抽象类不一定都有抽象方法,比如,在GUI当中,对于事件处理提供了很多监听器口里里面方法都是抽象的,每次进行事件处理时,都需要实现监听器接口,哪怕只处理一个简单的动作,也需要实现接口所有的方法,这样很麻烦,而且显得代码很臃肿,Java提供了适配器,适配器就是自己实现了监听器接口,但是所有的方法都是空实现,以后再用到监听器时,我们可以继承适配器,实现我们需要的方法就可以了,这样就很方便。像这样的适配器只是给调用者提供一个方便,一定不希望别人直接创建实例来使用,所以有必要将它定义为abstract抽象的。
接口,接口是一种特殊的抽象类,接口中所有的方法都是抽象的,通常来讲,我们使用接口作为一种协议,起到各模块之间的衔接作用。由于Java中只支持单继承,不支持多继承,但是可以实现多个接口,原因在于接口中所有的方法都抽象,子类继承哪个都无所谓,我们让一个类实现多个接口,就可以做到将一个子类对象当做多种父类类型来使用,所以我认为定义接口就是为了更好地实现多态,因为多态就是把子类当做父类来用.
posted on 2012-08-07 01:01
、小细 阅读(61)
评论(0) 编辑 收藏