首先: 接口(Interface)和抽象类(Abstract Class)都来实现抽象层。
区别:
1.接口无构造器,抽象类由构造器
2.继承和实现:接口可以被多实现,抽象类可以被单继承。
3. 接口主要用于制定规范,我们也提倡经常使用的都是面向接口编程。而抽象类主要目的是为了复用,比较典型的就是模板方法模式。
总结
- 接口(Interface):用于定义类的能力和行为,可以包含抽象方法、默认方法和静态方法,支持多重继承。
- 抽象类(Abstract Class):用于定义类的共性和基础实现,可以包含抽象方法和具体方法,不支持多重继承。
所以当我们想要定义标准、规范的时候,就使用接口。当我们想要复用代码的时候,就使用抽象类。