Abstract(抽象类)和interface(接口)的区别?
相同点:
- 不能够实例化
- 可以将抽象类和接口类型作为引用类型
- 一个类如果继承了某个抽象类或者实现了某个接口都需要对其中的抽象方法全部进行实现,否则该类仍然需要被声明为抽象类
不同点:
- 抽象类中可以有构造方法,接口中不能;
- 抽象类中可以有普通成员变量,接口中不能;
- 抽象类中可以包含普通方法,接口中不能;
- 抽象类中的访问权限是:public、protect,接口中只能是 public;
- 抽象类中可以包含静态方法,接口中不能;
- 抽象类中可以包含任意类型的静态成员变量,接口中只能是public static final;
- 一个类只能继承一个类,但是可以继承多个接口;