我想知道:设计接口的初衷是什么? 
         使用接口有哪些好处? 
         接口存在的意义何在? 
书上的解释不够详细,谁能给我一通俗详细的解释吗??
谢谢!!大侠们

解决方案 »

  1.   

    去看 java 编程思想  关于接口的章节,最好把多态多也看了.应该有些帮助.
      

  2.   

    接口为什么存在呢?
    一个众所周知的理由就是为了实现多重继承,这是C++里面的一个概念。由于每个类都有一个具体实现,多重继承会使你背上很沉重的包袱,也正是这个原因,java拒绝类的多重继承。然而这个概念其实是必要的,生活中也经常会出现x既是A又是B的现象,所以java利用接口来实现这种情况,因为接口没有任何具体实现,所以就没有任何与接口相关的存储,这里就避免了C++里出现的负担太重的问题。这个理由也可以描述为:为了能够使一个对象向上转型为多个基类型。
    还有第二个理由,这与抽象类是一致的,就是防止客户端程序员创建该类的对象。正因如此,我们就要明确一下,什么时候该用接口,什么时候该用抽象类。可以说接口既有接口的好处,又有抽象类的好处,那么如果我们要创建不带任何方法定义和成员变量(ps:接口可以定义数据成员,但默认是static final类型的,即他是一个常量)的基类,那就选择接口。事实上,当我们在创建基类的时候,首先应该想到是否可以让他是一个接口,只有在你必须要有方法定义或成员变量这样的限制的时候,才应该选择抽象类,或者更进一步,使其成为一个具体类。
      

  3.   

    同意樓上cybcha的觀點,“接口就是用来管理类的”。接口的“用戶”是程序員(即使用你所設計的類的人),而不是我們通常概念上的用戶,即終端用戶。只有當你把程序員當作你的用戶時,你才能真正體會接口的作用。把接口的作用理解為實現多繼承,絕對是一個天大的誤解。