接口与抽象类的区别

抽象类:只要是类里面有抽象方法,这个类就是一个抽象类,抽象类用abstract修饰,抽象类中可以有已经被实现的方法,也有未被具体实现的方法,如果子类继承该抽象类,需要去实现该类中所有未被实现的抽象方法,否则的话子类也将要被abstract修饰为抽象类。因为抽象类有未被具体实现的方法,所有抽象类不能直接new创建实例,抽象类要用public或protected进行修饰,不能用private修饰,因为需要被子类继承,实现未被具体实现的方法,默认为public修饰。

接口:接口里面的变量被隐式的定义为abstract final类型的,必须对其进行初始化,另外,接口里面的方法都是抽象方法,都是未被具体实现的方法。可以看出,接口比抽象类更加纯粹。

在继承抽象类的时候,只支持单继承;但是对于接口,可以实现多个接口。

原文地址:https://www.cnblogs.com/javatalk/p/10111780.html