程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> 關於JAVA >> Java的接口和繼承

Java的接口和繼承

編輯:關於JAVA

1.JAVA裡沒有多繼承,一個類只能有一個父類。而繼承的表現就是多態。一個父類可以有多個子類,而在 子類裡可以重寫父類的方法(例如方法print()),這樣每個子類裡重寫的代碼不一樣,自然表現形式就不一 樣。這樣用父類的變量去引用不同的子類,在調用這個相同的方法print()的時候得到的結果和表現形式就不 一樣了,這就是多態,相同的消息(也就是調用相同的方法)會有不同的結果。舉例說明:

//父類 

 
public class Father  
{  
  //父類有一個打孩子方法  
  public void hitChild()  
  {     
      System.out.println("臭崽子,你站著,不打你我不是你爹!");  }  
  }  
}  
//子類1  
public class Son1 extends Father  
{  
  //重寫父類打孩子方法  
  public void hitChild()  
  {  
      System.out.println("為什麼打我?我做錯什麼了!");  
  }  
}  
//子類2  
public class Son2 extends Father  
{  
  //重寫父類打孩子方法  
  public void hitChild()  
  {  
      System.out.println("我知道錯了,別打了!");  
  }  
}  
//子類3  
public class Son3 extends Father  
{  
  //重寫父類打孩子方法  
  public void hitChild()  
  {  
      System.out.println("我跑,你打不著!");  
  }  
}  
//測試類  
public class Test  
{  
  public static void main(String args[])  
  {  
      Father father;  
      father=new Father();      father.hitChild();  
      father = new Son1();  
      father.hitChild();  
      father = new Son2();  
      father.hitChild();  
      father = new Son3();  
      father.hitChild();  
  }  
}

運行結果

C:\java>java Test

臭崽子,你站著,不打你我不是你爹!  
為什麼打我?我做錯什麼了!  
我知道錯了,別打了!  
我跑,你打不著!

都調用了相同的方法,出現了不同的結果!這就是多態的表現!

2.JAVA 中沒有多繼承,而用接口實現了多繼承!一個類或是可以同時實現多個接口!(就相當於C++裡一個類同時繼 承了多個類!)例如:

public class Son implements Father1,Father2,Father3

{

}

接口有利於代碼功能的擴展(增加新的功能)!而繼承則有利於代碼功能的修改(把舊的功能改成新 的功能)!這裡舊功能的修改和新功能的增加前提是不修改舊的功能,舊的功能仍然可以使用!舊類的代碼也 不做修改!

接著上面的繼承舉例:上面例子中的子類我們統稱為一代子類

1.用繼承修改舊的 功能。

現在如果一代Son1的功能打孩子,也就是方法hitChild()裡邊的功能實現有問題,我們要把具 體實現修改掉,那麼我們可以重新寫一個新的二代子類Son11繼承自一代子類Son1,並重寫其hitChild()方法 。

<span style="font-size:18px;"><strong>//二代子類  
public class Son11 extends Son1  
{  
  //重寫父類打孩子方法  
  public void hitChild()  
  {  
      System.out.println("我是二代子類對此方法的新實現");  
  }  
}</strong></span>

2.用接口實現增加新的功能。

現在類Son1已經有了‘打孩 子’功能(也就是方法),而我們有了新的需求,我們需要它還要有一個新的功能‘寵孩子’(新方法pet(); )。而舊的代碼不能動!那麼我們可以定義一個新的接口(PetInterFace),接口裡定義這個方法pet()的聲 明。再重新寫一個二代子類Son11,讓它先繼承類Son1,同時實現接口 PetInterFace!並實現接口裡的 pet() 方法!

<span style="font-size:18px;"><strong>//新接口  
public interface PetInterFace  
{  
  //新功能方法  
  public void pet();  
}  
//二代子類  
public class Son11 extends Son1 implements PetInterFace  
{  
  //實現接口方法  
  public void pet()  
  {  
      System.out.println("父親很愛我!");  
  }  
}</strong></span>
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved