1、抽象类是类,它的子类不能再继承其它类了御局,但可以实现一个和多个接口。接口不是类,它的子接口可以继承多个接口。
2、抽象类中是可以有不用abstract修饰的方法,而接口中只能有抽象方法,即方法都要用abstract修饰。
3、抽象类可以实现接口,而接口是不能继承或颤迟实现抽象类的。
有人镇洞让说,接口类似于抽象类,这是指它提供的方法只有方法头,而抽象类也有这样的情况。
但实际上,区别是很大的,接口提供了一种JAVA中类不能多继承时引起的不便的一种解决方案,提高了灵活性。同时,接更有利于实现程序的扩展。
理解它们,最好去看一下JAVA 图形界面编程中的关于事件处理时的事件监听器与适配器相关内容
其实差别并不大,抽象类和接口中的方法都需要子类或实现类去覆写(当然抽象类中的方法也可以交给子类的子类去搏岩覆写)。由尺银培于java只能单继承,所以出现了接口,它们都能很好的为“多态”服务,但使用接口编程能更好的实现解陵唯耦。
你可以把接口看成一种抽象类 最大的不同就在于接口能多重继承 类只能单继承
1、接口可以多重继承,春轮抽象类只能单继承
2、类实现(implements)某一接口必须实现该接口的所有方法扒蠢信,一个类实现(extends)一个抽象类 则可以根据需要有选择的实档耐现需要的方法
3、接口是一种标准,
定启灶义的关键字:abstract class;interface;
组成:常量,变量,抽象方法,普通方法,构造方法;全局常量,抽象方法;
权限:可以是各种权限;只能是public;
关系:抽象类可以实现多个接口;接口不能实现抽象类;
使用:子类利用extends;子类利用implements实贺旁仿现接口;
涉及的设计模式:模板设计模式;工厂,代理设计模式;
局限性:一个子类只能继承一个抽象类;一个子类可以继承多个接口;
如果抽象类和接口都能实现的操作,一般选择接口,因为禅纤可以避免单继承局限;