在Java中,一個(gè)類可以使用implements關(guān)鍵字來實(shí)現(xiàn)接口。當(dāng)一個(gè)子類繼承自一個(gè)父類并且同時(shí)要實(shí)現(xiàn)某個(gè)接口時(shí),這就需要用到Java中的子類和父類實(shí)現(xiàn)同樣接口的方法。
子類繼承自父類并且可以獲得父類的所有方法和屬性。當(dāng)子類實(shí)現(xiàn)一個(gè)接口時(shí),它必須重寫接口中所有的方法。如果此時(shí)子類已經(jīng)繼承了父類并且父類也實(shí)現(xiàn)了同樣的接口,那么子類就會(huì)繼承父類實(shí)現(xiàn)的接口方法,這可以減少子類的代碼量并且提高代碼的可維護(hù)性。
// 父類實(shí)現(xiàn)接口 public class Parent implements MyInterface { public void method1() { System.out.println("Parent implementing method1"); } public void method2() { System.out.println("Parent implementing method2"); } } // 子類繼承父類并實(shí)現(xiàn)接口 public class Child extends Parent implements MyInterface { public static void main(String[] args) { Child child = new Child(); child.method1(); // output: Parent implementing method1 child.method2(); // output: Parent implementing method2 child.method3(); // output: Child implementing method3 } public void method3() { System.out.println("Child implementing method3"); } } // 接口定義 public interface MyInterface { void method1(); void method2(); }
在上面的例子中,我們定義了一個(gè)接口MyInterface,然后父類Parent實(shí)現(xiàn)了接口中的所有方法。接著,子類Child繼承了Parent類并同時(shí)實(shí)現(xiàn)了MyInterface接口,它只需要覆蓋MyInterface接口中未實(shí)現(xiàn)的方法。運(yùn)行Child類的main函數(shù),我們可以看到輸出的結(jié)果包含父類和子類的方法實(shí)現(xiàn)。