接口和內部類爲咱們提供了一種將接口與實現分離的更加結構化的方法。程序員
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
的。優先使用類而不是接口!設計