抽象类(abstract class)和接口(interface)的异同
不同点:
1.接口只有方法定义,没有具体的实现,实现接口的类要实现接口的所有方法;抽象类可以有定义与实现;
2.接口与类是实现关系,并且类可以多实现;抽象类与类是继承关系,只能被一个类继承。
3.接口中成员全为public, 抽象类中可以有抽象方法,也可以没有,抽象方法需加abstract
4.接口中无静态方法,抽象类中可以有。
5.接口中不能定义构造器,抽象类中可以。
相同点:
1.都不能被实例化
2.可以将抽象类和接口类型作为引用类型
3.一个类如果实现接口或继承抽象类,必须实现全部抽象方法,否则仍然是个抽象类