接口和抽象类的区别:
语法:
1>抽象类使用abstract,接口使用interface
2>抽象类中可以包含抽象方法,也可以包含非抽象方法,接口中只能包含抽象方法和静态常量,jdk1.8之后接口可以包含静态方法和默认方法。
3>抽象类和接口都不能实例化。
4>抽象类可以包含构造方法,接口中没有构造方法。
功能:
1>抽象类一般用来表示同类事物,接口可以表示不同类事物。
2>抽象类可以实现代码的重用,也可以约束子类的功能。接口就是约束实现类的功能,降低代码之间的耦合性。
使用场景:
1>程序或模块内部使用抽象类--> 同类事物
2>程序架构或模块之间使用接口--> 不同类的事物
推荐使用接口
接口更加轻量级 不会影响实现类的操作
接口可以不用考虑对象的类型, 只考虑拓展的功能