接口和抽象类的区别
- 抽象类中可以有实现方法,而接口中只能存在抽象方法
- 抽象类只能被单一继承,而接口可以实现多个
- 抽象类中的成员变量可以是各种类型的,而在接口中的成员变量只能是public static final类型的(无论有没有显式声明,都只能是个静态常量)
设计的目的不同:
接口的设计目的是对类行为的约束,是一种机制,约束了行为的有无,但不关心如何实现
抽象类的设计目的是代码的复用,他是对类本质的抽象,包含并实现了子类的通用特性,抽象了子类的差异化特性
使用场景:
当关注一个事物本质的时候,使用抽象类;
当关注一个操作的时候,使用接口。