相同点:
- 两者都是不断向上抽取而来;
- 都需要在子类中实现具体的抽象方法;
- 都不能用new关键字来创建对象;
- 都定义了抽象方法;
不同点:
- 抽象类在其类前必须加abstract关键字,而接口需要在加interface;
- 在抽象类中除了有抽象方法还可以有其他非抽象方法和实例变量,子类继承后可以直接使用非抽象方法,而接口中,只能定义常量和抽象方法,必须由子类实现;
- 抽象类是需要被继承只能单继承,接口需要被实现可以多实现;
- 抽象类的继承是 is a 的关系,接口的实现是l ike a 关系;
相同点:
不同点: