中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

抽象類與接口在Java中有什么區別

發布時間:2021-01-30 15:58:13 來源:億速云 閱讀:157 作者:Leah 欄目:編程語言

抽象類與接口在Java中有什么區別?針對這個問題,這篇文章詳細介紹了相對應的分析和解答,希望可以幫助更多想解決這個問題的小伙伴找到更簡單易行的方法。

抽象類

抽象類是用來捕捉子類的通用特性的 。它不能被實例化,只能被用作子類的超類。抽象類是被用來創建繼承層級里子類的模板。以JDK中的GenericServlet為例:

public abstract class GenericServlet implements Servlet, ServletConfig, Serializable {
  // abstract method
  abstract void service(ServletRequest req, ServletResponse res);
 
  void init() {
    // Its implementation
  }
  // other method related to Servlet
}

當HttpServlet類繼承GenericServlet時,它提供了service方法的實現:

public class HttpServlet extends GenericServlet {
  void service(ServletRequest req, ServletResponse res) {
    // implementation
  }
 
  protected void doGet(HttpServletRequest req, HttpServletResponse resp) {
    // Implementation
  }
 
  protected void doPost(HttpServletRequest req, HttpServletResponse resp) {
    // Implementation
  }
 
  // some other methods related to HttpServlet
}

接口

接口是抽象方法的集合。如果一個類實現了某個接口,那么它就繼承了這個接口的抽象方法。這就像契約模式,如果實現了這個接口,那么就必須確保使用這些方法。接口只是一種形式,接口自身不能做任何事情。以Externalizable接口為例:

public interface Externalizable extends Serializable {
  void writeExternal(ObjectOutput out) throws IOException;
 
  void readExternal(ObjectInput in) throws IOException, ClassNotFoundException;
}

當你實現這個接口時,你就需要實現上面的兩個方法:

public class Employee implements Externalizable {
 
  int employeeId;
  String employeeName;
 
  @Override
  public void readExternal(ObjectInput in) throws IOException, ClassNotFoundException {
    employeeId = in.readInt();
    employeeName = (String) in.readObject();
 
  }
  @Override
  public void writeExternal(ObjectOutput out) throws IOException {
 
    out.writeInt(employeeId);
    out.writeObject(employeeName);
  }
}

抽象類和接口的對比

抽象類與接口在Java中有什么區別

什么時候使用抽象類和接口

  • 如果你擁有一些方法并且想讓它們中的一些有默認實現,那么使用抽象類吧。

  • 如果你想實現多重繼承,那么你必須使用接口。由于Java不支持多繼承,子類不能夠繼承多個類,但可以實現多個接口。因此你就可以使用接口來解決它。

  • 如果基本功能在不斷改變,那么就需要使用抽象類。如果不斷改變基本功能并且使用接口,那么就需要改變所有實現了該接口的類。

關于抽象類與接口在Java中有什么區別問題的解答就分享到這里了,希望以上內容可以對大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關注億速云行業資訊頻道了解更多相關知識。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

太湖县| 巴南区| 石泉县| 博野县| 武汉市| 郁南县| 海宁市| 治县。| 高青县| 钟山县| 绩溪县| 淮安市| 张家川| 玉龙| 深泽县| 康乐县| 都匀市| 宁化县| 基隆市| 象州县| 怀来县| 西平县| 阜康市| 安吉县| 唐河县| 荥经县| 遵化市| 大名县| 论坛| 黑山县| 民县| 新宁县| 大渡口区| 灵石县| 康平县| 鸡东县| 安仁县| 句容市| 司法| 台江县| 长沙市|