最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Java抽象類與接口區(qū)別詳解

 更新時間:2020年03月18日 12:49:04   作者:Dream0000  
這篇文章主要介紹了Java抽象類與接口區(qū)別詳解,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下

很多常見的面試題都會出諸如抽象類和接口有什么區(qū)別,什么情況下會使用抽象類和什么情況你會使用接口這樣的問題。本文我們將仔細討論這些話題。

在討論它們之間的不同點之前,我們先看看抽象類、接口各自的特性。

抽象類

抽象類是用來捕捉子類的通用特性的 。它不能被實例化,只能被用作子類的超類。抽象類是被用來創(chuàng)建繼承層級里子類的模板。以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方法的實現(xiàn):

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
}

接口

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

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

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

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);
  }
}

抽象類和接口的對比

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

  • 如果你擁有一些方法并且想讓它們中的一些有默認實現(xiàn),那么使用抽象類吧。
  • 如果你想實現(xiàn)多重繼承,那么你必須使用接口。由于Java不支持多繼承,子類不能夠繼承多個類,但可以實現(xiàn)多個接口。因此你就可以使用接口來解決它。
  • 如果基本功能在不斷改變,那么就需要使用抽象類。如果不斷改變基本功能并且使用接口,那么就需要改變所有實現(xiàn)了該接口的類。

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關文章

  • springboot實現(xiàn)maven多模塊和打包部署

    springboot實現(xiàn)maven多模塊和打包部署

    本文主要介紹了springboot實現(xiàn)maven多模塊和打包部署,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2022-04-04
  • Netty分布式源碼分析監(jiān)聽讀事件

    Netty分布式源碼分析監(jiān)聽讀事件

    這篇文章主要介紹了Netty分布式監(jiān)聽讀事件方法的代碼跟蹤解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-03-03
  • SpringBoot集成SpirePDF實現(xiàn)文本替換功能

    SpringBoot集成SpirePDF實現(xiàn)文本替換功能

    SpirePDF是一個用于.NET平臺的高級PDF文檔處理庫,它提供了一套完整的API,允許開發(fā)者創(chuàng)建、編輯、轉換、合并、分割和解析PDF文件本文給大家介紹了SpringBoot集成SpirePDF實現(xiàn)文本替換功能,需要的朋友可以參考下
    2024-09-09
  • 在spring?boot3中使用native?image的最新方法

    在spring?boot3中使用native?image的最新方法

    這篇文章主要介紹了在spring?boot3中使用native?image?,今天我們用具體的例子來給大家演示一下如何正確的將spring boot3的應用編譯成為native image,需要的朋友可以參考下
    2023-01-01
  • Java如何在List或Map遍歷過程中刪除元素

    Java如何在List或Map遍歷過程中刪除元素

    相信大家在日常的開發(fā)過程中,經常需要對List或Map里面的符合某種業(yè)務的數(shù)據(jù)進行刪除,但是如果不了解里面的機制就容易掉入“陷阱”導致遺漏或者程序異常。下面這篇文章將會給大家詳細介紹Java如何在List和Map遍歷過程中刪除元素,有需要的朋友們可以參考借鑒。
    2016-12-12
  • JVM 堆和棧的區(qū)別

    JVM 堆和棧的區(qū)別

    本文主要介紹了JVM堆和棧的區(qū)別。具有很好的參考價值,下面跟著小編一起來看下吧
    2017-02-02
  • 深入理解Spring AOP

    深入理解Spring AOP

    這篇文章主要介紹了深入理解Spring AOP,詳細的介紹了spring aop的具體實現(xiàn)與理論
    2017-01-01
  • Java類和對象習題及詳細答案解析

    Java類和對象習題及詳細答案解析

    這篇文章主要介紹了Java類和對象的相關知識,包括局部變量初始化、靜態(tài)方法、靜態(tài)導入、構造方法、代碼塊執(zhí)行順序、toString方法重寫、類變量和靜態(tài)成員變量的訪問等,文中通過代碼介紹的非常詳細,需要的朋友可以參考下
    2025-02-02
  • spring boot 即時重新啟動(熱更替)使用說明

    spring boot 即時重新啟動(熱更替)使用說明

    這篇文章主要介紹了spring boot 即時重新啟動(熱更替)的相關資料,需要的朋友可以參考下
    2017-12-12
  • java設計模式之工廠模式詳解

    java設計模式之工廠模式詳解

    本文介紹了三種常見的設計模式:簡單廠模式、工廠方法模式和抽象工廠模式,簡單廠模式通過一個工廠類來生產不同的產品實例,例如同時生產華為和小米手機,工廠方法模式則通過定義一個創(chuàng)建對象的接口,讓子類決定實例化哪一個類
    2024-11-11

最新評論

张北县| 丰都县| 邻水| 枣阳市| 繁昌县| 普兰县| 商南县| 延长县| 高州市| 宝鸡市| 漠河县| 古蔺县| 台东市| 河源市| 新巴尔虎左旗| 抚顺县| 西林县| 徐州市| 宁阳县| 保康县| 古丈县| 安化县| 台北市| 阜宁县| 朝阳市| 洛浦县| 和政县| 香港| 保定市| 双流县| 霍林郭勒市| 炉霍县| 新昌县| 红河县| 隆安县| 许昌县| 静安区| 义马市| 彰化县| 湖南省| 海口市|