接口与抽象类

/************* 最终类中定义的常量 ***************/

package Test;
public final class A {public static final String a = "";}
import static Test.A.a;
public class B{ //a已经是这个类中的常量了,可以直接用 }


/************ 接口中定义的常量 *****************/

interface A { public static final String a; }

abstract class B implements A{ //a已经是这个类中的常量了,可以直接用 }

==========================================================

 接口:我们要定义一个类“做什么”,然后在里面实现“怎么做”。比如,我们都要“连接数据库”,且要实现“怎么连”。
产生接口的问题是:连接数据库,但要连接不同的数据库,要实现“重构”的时候,怎么办。所以接口技术产生了。
-------------------------

eg:(这个例子有问题)
interface A
class B implements A  (可以将B,D直接写成抽象类,在被要调用的类去继承)
class D implements A
--------------------------------------------------

例如接口A中定义了一个未实现的方法X()。这个方法在B中实现了。C类需要这个方法,但不是B实现的那种功能,这时候我们就可以写一个D,D也实现了方法X(),但功能跟B中的不一样,这种功能是C想要的功能,可以在C中

--------------------------------------------------
import D

class C{

    private A a;
    public C(){ a=new D(); } (a是只能调用a接口的方法,因为兼容性原则的原因。
}

 ==========================================================

原文地址:https://www.cnblogs.com/xinxindiandeng/p/1356548.html