抽象类和接口是JAVA中非常常用的东西。
他们有很多相似的地方,他们在很多时候都可以互相替换着使用,但是想要掌握抽象类和接口的实质,必须总结一下他们之间的相同点和不同点。
相同点:代表系统的抽象层
都不能被实例化
都能包含抽象方法
都用于描述系统提供的服务,且不必实现。
不同点:在抽象类中可以为部分方法提供默认实现,而接口只能包含抽象方法
抽象类便于复用,而接口便于维护。
一个类只能集成一个直接的父类,但是可以继承多个接口。
因为JAVA的特殊性,只能实现单继承,不像C++/C可以多继承,机智得java工程师为了解决这个弊端就发明了接口。
接口是作为系统与外界进行交互的窗口,接口提供服务,接口本身一旦制定,就不允许随意更改,抽象类可完成部分功能的实现,还有部分功能自以为系统的扩展点。
Java中的接口。
属性全都是全局静态常量,方法都是全局的抽象方法。
它无构造函数,一个类可以实现多个接口,非抽象类实现接口必须实现接口的全部方法。