接口主要是提供解决问题的方法,当然也是由于Java不支持多重继承而产生的
而抽象类是不能直接New的,必须通过继承来使用
比如你要实现一个队列,你定义了一个接口
interface DuiLie(){
    //进队
    public void put(){
    }
    //出队
    public void get(){
    }
}
然后,由于队列可以有多种实现方式,比如通过数组,或是通过链表
这样你只需继承DuiLie这个接口,重载这两个方法,用不同的方法实现就可以了
能用接口的地方尽量用接口,因为一方面Java不支持多重继承,另一方面不方便类的上塑造型。我也是凭自己的理解,做出这点解释,希望能起到抛砖引玉的效果