接口和内部类为咱们提供了一种将接口与实现分离的更加结构化的方法。程序员
abstract
修饰的方法。abstract
修饰的类。interface
关键字产生类一个彻底抽象的类(接口),它根本没有任何具体实现。public
、static
和final
的。public
的,并且默认就是public
的。更详细的请看设计模式!!!算法
public class Test { static void process(Processor p) { p.process(); } public static void main(String[] args) { Test.process(new Processor1()); Test.process(new Processor2()); } } interface Processor { void process(); } class Processor1 implements Processor { public void process() { System.out.println("1"); } } class Processor2 implements Processor { public void process() { System.out.println("2"); } }
使用接口的缘由:设计模式
抽象类OR接口:ide
interface I1 { void f();} interface I2 { int f(int i);} interface I3 { int f();} class C { int f() { return 0; } } // 两个方法重载 class C2 implements I1, I2 { public void f() { } public int f(int i) { return 0; } } // 重载 class C3 extends C implements I2 { public int f(int i) { return 0; } } // 相同的方法没问题,同时重写两个方法 class C4 extends C implements I3 { public int f() { return 4; } } // 此时是有问题的 class C5 extends C implements I1 { }
接口最吸引人的缘由之一就是容许同一个接口具备多个不一样的具体实现。工具
public
、static
和final
的,因此接口能够用来建立常量组(尽可能避免这么作!)。final
,可是能够被很是量表达式初始化。static
代码块不能出如今接口中public
的。优先使用类而不是接口!设计