首先java接口和抽象类代表的就是抽象类型,就是我们需要提出抽象层的具体实现,如果要提高程序的复用率,可维护性,可扩展性,就必须面向接口和抽象编程,正确使用他们。
(1)抽象类可以提供实现方法,接口不能
这是抽象类的唯一优点,而且非常有用,例如,你定义一个接口,子类不需要他的所有方法,可是你没办法不去实现所有方法,因为你实现的是接口而不是抽象类,具体办法后面解释
(2)抽象类只能继承一次,而可以实现多个接口
这样接口的优点就出来了,例如每个接口可以代表一种最顶层的抽象,可以理解为代表一类东西,如果一个类实现了多个接口,那这个类就有了多种类型,即接口是定义混合类型的理想工具
最后:有一种设计模式,就是,默认适配模式,意思就是说,首先定义一个接口,通过抽象类实现这个接口,并实现一些子类不需要一定实现的方法,然后,子类就可以选择是继承接口,实现所有方法,还是直接继承这个抽象类实现具体需要的方法,当然实现这个接口的抽象类可以不止一个,我本人认为,如果你抽象出一个父类,然后让子类直接继承这个父类是有问题的