抽象类与接口都在Java语言中扮演着重要的角色
下面来看这张表:
区别 | 抽象类(abstract) | 接口(interface) |
结构组成 | 普通类+抽象方法 | 抽象方法+全局常量 |
权限 | 各种权限 | 只有public |
子类使用 | 使用extends关键字继承 | 使用implements关键字实现接口 |
关系 | 一个抽象类可以实现若干个接口 |
接口不能继承抽象类 但接口可以使用extends继承一个或多个父接口 |
子类限制 | 一个子类只能继承一个抽象类 | 一个子类可以实现多个接口 |
表中抽象类与接口的区别已经很明显,大体上来讲抽象类和接口的使用很类似
在开发过程中,我们要优先使用接口,以避免单继承局限
抽象类是模板,有层次感;而接口更关心行为与混合
在接口的应用中,有经典的工厂设计模式和代理设计模式,可以自己去看看他们的设计理念,分别有什么特点与区别