java抽象类和接口的比较

接口和抽象类是非常相像的,但它们之间是有区别的,主要区别有以下几个方面。

1.一个类可以实现众多个接口,但是只能继承一个抽象类。可以说接口是取消程序语言中的多继承机制的一个衍生物,但它不完全如此。

2.抽象类可以有非抽象方法,即可以有已经实现的方法,继承它的子类可以对方法进行覆写;而接口中定义的方法必须全部为抽象方法。

3.在抽象类中定义的方法,它们的修饰符可以是public、protected、private,也可以是默认值;但是在接口中定义的方法全是public的。

4.抽象类可以有构造函数,接口不能。两者都不能实例化,但是都能通过它们来存放子类对象或是实现类的对象。可以说它们都可以实现多态。

你可能感兴趣的:(Java)