北京Java培训
达内北京中关村中心

010-62126400

热门课程

达内课堂:Java中的接口有什么作用

  • 时间:2018-12-29 15:22
  • 发布:北京java培训
  • 来源:java知识库

对于Java初学者而言,接口是一个很麻烦的事。很多新手觉得定义了一个接口,但是在继承这个接口的类中还要写接口的实现方法,那不如直接就在这个类中写实现方法岂不是更便捷,还省去了定义接口。所以,小华君就和大家来一起看一下Java中的接口有什么作用。

我们还是先用一个比喻来说一下接口。如果用餐饮来做比喻的话,接口就好比是一个招牌。比如你晚上下班了,想吃汉堡吃烤翅,你看见麦当劳了,你就知道自己要去这里了。麦当劳就是个接口,你看到了这个接口,就知道里边是卖汉堡卖烤翅的,就是实现接口。

也可以说接口就是一种规范,墙上的电源插座接口大家都见过吧,所有的电源插座接口都是按规范制作的,国家也出台了插座标准。也可以把它比作是一个接口。为什么要制定这种规范呢?因为有了这种规范,任何电器,只要有符合规范的插头,就都能获得电。任何插板生产商,公牛也好,子弹头也好,西门子也好,只要按照规范来做,生产出来的插板就一定能进行供电。每个厂家插座的生产技术、工艺都不一样,因为接口的implementation可以不一样,但是并不影响电器的正常工作。插座的内部实现对于电器来说是完全屏蔽的。

软件开发大多是一个协作性的工作,一般都是很多人一起完成,就像电器和插座都是不同人生产的,有了接口,即使在不同时间不同地点各自分开做事,最后也能实现整合。此外,软件在不断演化,有了规范就能实现无障碍衔接。

在一个类中直接写实现方法,的确可以省去定义接口,但是怎样保证这个接口就一个类去实现呢?如果多个类去实现同一个接口,程序员们怎么知道他们是有关联的呢。为了方便不是一个去实现,就需要统一标准,这也是为什么现在有些编程语言已经不把接口叫作interface,而叫protocol了。

接下来,我们再来用一个接口的例子来说明。程序员知道Comparable这个接口是用来比较两个对象的,那么如何去比较呢。数字有数字的比较方法,字符串有字符串的比较方法,自己定义的类也有自己的比较方法。

然后,在另外一个负责对象排序(不一定是数字)的代码里,也需要将两个对象比较。这两个对象是什么类型呢?如果用Object a,b可以吗?肯定不行,因为a > b这样的语法无法通过编译。那用int a,b呢?也不行,因为遇见非数字,就无法处理。

这个时候,Comparable的作用就显示出来了。它告诉编译器,a b两个对象都满足Comparable接口,也就是他们是可以进行比较的。具体怎么比较,这段程序不需要知道。所以,他需要一些具体的实现,Comparable接口有一个方法,叫compareTo。那么这个方法就是用来取代<、>这样的运算符。因为运算符是编译器保留给内置类型(整数、浮点数)进行比较用的,而不是一个广义的比较运算。

那到底什么时候需要通过接口建立规范呢?一般来说,为了抽象系统的某种公共行为,或者封装变化性,进行系统设计的时候需要抽取出接口,这样将来的系统会更加灵活。致谢写实现方式不定义接口的方式在确定性地场景下可以使用。不涉及分工协作、变化性、测试方便等因素时,就不需要用接口。比如为了一个Pojo的getter和setter,就没必要弄个接口和实现分离。

Java中的接口有什么作用,希望你的疑惑已经有所解答了。最后,还是把Java大神们的那句话拿出来跟大家说:接口和实现分离,面向接口编程。


上一篇:自学Java必知,零基础学Java一定要牢记这些
下一篇:学习Java软件开发这些禁忌不能碰
选择城市和中心
贵州省

广西省

海南省