Java中抽象类与接口的区别
区别点 | 抽象类 | 接口 |
---|---|---|
定义 | 包含一个抽象方法的类 | 抽象方法和全局变量 |
组成 | 构造方法 抽象方法 普通方法 常量 变量 | 常量 抽象方法 |
使用 | extends | implements |
关系 | 抽象类可以实现多个接口 | 接口不能继承抽象类 但允许继承多个接口 |
常用设计模式 | 模板设计模式 | 工厂设计模式 代理设计模式 |
局限性 | 不能多继承 只能多层继承 一个类不要去继承一个实现好的类 | 无 |
实际 | 作为一个模板 | 作为一个标准或一种能力 |
选择 | 若接口或抽象类均可使用 优先使用接口 避免单继承 | 若接口或抽象类均可使用 优先使用接口 避免单继承 |
特殊 | 一个抽象类中可以包含多个接口 | 一个接口中可以包含多个抽象类 |