接口和抽象类有什么区别?各在什么场景下使用?
1、语法方面
(1)接口可以多实现,抽象类只能单继承。
(2)接口里的成员变量,不能更改的,因为修饰符是:public static final;方法默认public abstract修饰的
2、思想上:
(1)接口强调功能实现,abstract class强调所属关系。
(2)接口中是全局的静态的常量,所以接口用于定义标准、行为规范等;是对事务的属性和行为的更高层次的抽象。
(3)接口是为了统一管理,没有继承关系的各种类的对象,但是它们存在相同的行为方法。我们把这些行为方法抽象到接口中。
(4)接口是对修改关闭,对扩展开放的,是开闭原则的一种体现。
(5)有时功能需要接口隔离。