我們既可以通過繼承(entends)父類也可以通過實現(implements)接口(interface)來實現一個或者多個原有的方法。例如:
繼承方法如下:
父類如下:
1 //父類 2 class father { 3 4 public void print(){ 5 System.out.println("這是一個類!"); 6 } 7 8 }
子類如下:
1 public class Client extends father{ 2 3 public static void main(String[] args) { 4 5 Client s1=new Client(); 6 s1.print(); 7 System.out.println("從父類繼承而來的!"); 8 } 9 }
生成的結果如下:

父類father擁有方法print(),子類Cient繼承了父類father,並new了一個對象s1,使用子類對象s1訪問了父類的方法print() 。
實現的方法如下:
借口:
public interface inter { public void print(); }
子類s1:
public class s1 implements inter{ public void print() { System.out.println("s1使用了接口的方法print"); } }
子類s2:
public class s2 implements inter{ public void print() { System.out.println("s2使用了接口的方法print"); } }
客戶端實現兩個子類的方法:
public class Client{ public static void main(String[] args) { s1 s1=new s1(); s1.print(); s2 s2=new s2(); s2.print(); } }
結果如下:

剛開始有的時候想到在接口中就算不繼承也照樣可以使用print()方法,為什么要多此一舉呢?然后就上網找,達到的回答經過我的理解后大概就是使用接口的時候可以固定子類的行為!並且我們還可以通過接口告訴人們實現了什么功能,也實現了模塊和模塊之間的解耦。
如果我們使用了繼承,繼承后我們不一定要使用從父類那里繼承的方法,但是我們要使用的時候可以直接調用,很方便。這就相當於我們從父輩那里繼承了一套房子,你可以住也可以只是放着,但我們要住的時候就可以直接住,不用去住房子住,這樣就更加便利了。
而我們使用接口時,我們就必須實現接口中所定義的所有方法,否則就會報錯,這就相當於我們規定了一部筆記本電腦必須要有鍵盤、屏幕、電池等部分一樣,鍵盤、屏幕、電池就相當於接口中的方法,規定了我們一定要有這些,抽象的定義了筆記本這樣物品。
