我们经常说接口内定义了方法,但必须有方法的实现,实现类要继承接口并实现方法.

在实际开发中,项目的模块有很多,必须有模块间的相互引用,如果我们把每个模块都成实现类(没有接口,存在若干实现类),每次引用必须去拿需要的方法所在的类,这样程序看起来就要死人了.

当我们实现一个接口后,就可以把需要的方法集中起来,不管你是几个类里实现的,使用的人只要实例化这个接口就可以使用所有方法----这是在使用上;在开发过程中,一般设计人员会把需要的方法列举出来放在接口里,至于实现,可以分配给不同的程序员去实现在不同的类文件里.
家都用过音箱,把音频线接到电脑再接电源,就可以播放美妙的音乐。这是一个常见的例子。
编程中的接口,其实跟电脑与音箱之间那个音频接口的思想其实差不多。你接上高档一点的音箱它的音质会好一点,低档一点的也能听,A厂商的音箱也可以,B厂商的音箱也没什麼问题。音箱厂商在设计音箱的时候,他们不会管你使用的是什麼电脑、什麼声卡,他们只在意音频接口的信号,而这些信号是格式是公开的。这样就使得声卡、音箱的可以独立设计与开发,大家遵循同样的接口规范就可以进行合作,而不必要了解对方的技术细节。

软件的开发同样会有合作的问题,比如团队与团队之间、公司与公司之间,往往是你开发一个模块,我开发一个模块,那来源不同的各个模块是如何协同动作呢?就是公开的接口定义在起作用。