欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

继承和接口的区别在哪里(2者区别和用法分析)

程序员文章站 2023-11-27 15:31:34
首先,对于java语言来说,接口(interface)占据着非常重要的地位,如果没有接口,java语言无论从功能性上,还是扩展性上,都会大打折扣。接口的使用从技术体系结构上来看,java语言借助于接口...

首先,对于java语言来说,接口(interface)占据着非常重要的地位,如果没有接口,java语言无论从功能性上,还是扩展性上,都会大打折扣。

继承和接口的区别在哪里(2者区别和用法分析)

接口的使用

从技术体系结构上来看,java语言借助于接口,可以完成三部分功能,其一是接口定义了java语言当中的“全抽象”概念。借助于接口的全抽象概念,java可以实现定义和实现的分离,这样可以更有利于java语言提出的“按角色开发”的相关概念,从而能够让java语言可以适配更多的技术体系(容器),这对于java语言的迅速普及具有非常重要的意义。

继承和接口的区别在哪里(2者区别和用法分析)

接口的定义

其二是接口为java赋予了较强的扩展性,而借助于接口的扩展性,java语言能够在不同时期找到自己的位置,从而实现持续发展。比如在web开发、移动互联网开发和大数据开发时代,java语言都能够得到大量的使用,这其中接口起到了非常关键的作用。

继承和接口的区别在哪里(2者区别和用法分析)

接口在web开发中的使用

其三是接口为java的模块化奠定了基础,这一点在jdk9之后,得到了较为彻底的体现。实际上,java语言的模块化问题一直困扰着很多程序员,java语言自身一直没有为模块化提供基础支撑,这也促使了osgi等模块化框架得到了广泛的应用,但是到jdk9之后,java语言提供了模块化支撑,这使得java语言的动态扩展性能得到了基础性的支撑。

java中的接口和继承并不是解决同样的问题,实际上,java语言当中的继承在很多场景下并不建议使用,原因是继承本身属于“强耦合”的概念,强耦合本身有非常多的弊端,为程序的复用和维护也带来了一定的困难。当然,继承作为面向对象语言的三大特征之一,如果合理地运用,也会带来很多方便,也会更全面地描述各种模型。

继承和接口的区别在哪里(2者区别和用法分析)

继承的定义和使用

虽然在很多场景下,使用接口要更好一些,但是接口的定义并不是为了取代继承,二者之间的定位也有非常清晰的界定。可以说,继承提供了“高内聚”的解决方案,而接口则提供了松耦合的解决方案,而这也正是合理使用继承和接口的出发点。

继承和接口的区别在哪里(2者区别和用法分析)

通过接口来扩展资源

从java语言的发展趋势来看,接口为java语言带来了非常大的想象空间,比如当前的“微服务”概念,从基础实现方式来看,也可以看成是基于接口实现的一种新模式,这种模式的特点就是能够实现可扩展的动态服务。

说到微服务就一定要提到云计算,实际上,当前的微服务可以看成是云计算时代的一种新的代码实现方式,如果把云计算看成是一个服务的“容器”,那么微服务更像是运行在云计算这个大容器当中的小容器。在java的微服务解决方案当中,接口起到的就是一种“链接”的作用,一边是提供服务的容器,另一边则是业务的抽象,这中间还可以完成各种第三方服务的介入,这样既能够保障服务的独立性,同时也提供了更加高效的运行方式。

继承和接口的区别在哪里(2者区别和用法分析)

最后,对于java程序员来说,学习继承和学习接口并不矛盾,接口当中也有继承的概念,比如接口之间的扩展就可以通过继承的概念来实现,比如在java分布式开发当中就有比较直观的体现,无论是早期的rmi解决方案,还是现在基于框架的解决方案,接口之间都可以通过extends来实现扩展。