茄子在线看片免费人成视频,午夜福利精品a在线观看,国产高清自产拍在线观看,久久综合久久狠狠综合

    <s id="ddbnn"></s>
  • <sub id="ddbnn"><ol id="ddbnn"></ol></sub>

  • <legend id="ddbnn"></legend><s id="ddbnn"></s>

    Java抽象類與接口的區(qū)別
    來源:易賢網(wǎng) 閱讀:915 次 日期:2015-04-10 15:58:51
    溫馨提示:易賢網(wǎng)小編為您整理了“Java抽象類與接口的區(qū)別”,方便廣大網(wǎng)友查閱!

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

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

    抽象類

    抽象類是用來捕捉子類的通用特性的 。它不能被實(shí)例化,只能被用作子類的超類。抽象類是被用來創(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

    }

    當(dāng)HttpServlet類繼承GenericServlet時(shí),它提供了service方法的實(shí)現(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

    }

    接口

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

    public interface Externalizable extends Serializable {

    void writeExternal(ObjectOutput out) throws IOException;

    void readExternal(ObjectInput in) throws IOException, ClassNotFoundException;

    }

    當(dāng)你實(shí)現(xiàn)這個(gè)接口時(shí),你就需要實(shí)現(xiàn)上面的兩個(gè)方法:

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

    }

    }

     抽象類和接口的對比

    什么時(shí)候使用抽象類和接口

    如果你擁有一些方法并且想讓它們中的一些有默認(rèn)實(shí)現(xiàn),那么使用抽象類吧。

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

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

    Java8中的默認(rèn)方法和靜態(tài)方法

    Oracle已經(jīng)開始嘗試向接口中引入默認(rèn)方法和靜態(tài)方法,以此來減少抽象類和接口之間的差異?,F(xiàn)在,我們可以為接口提供默認(rèn)實(shí)現(xiàn)的方法了并且不用強(qiáng)制子類來實(shí)現(xiàn)它。這類內(nèi)容我將在下篇博客進(jìn)行闡述。

    更多信息請查看IT技術(shù)專欄

    更多信息請查看網(wǎng)絡(luò)編程
    易賢網(wǎng)手機(jī)網(wǎng)站地址:Java抽象類與接口的區(qū)別
    由于各方面情況的不斷調(diào)整與變化,易賢網(wǎng)提供的所有考試信息和咨詢回復(fù)僅供參考,敬請考生以權(quán)威部門公布的正式信息和咨詢?yōu)闇?zhǔn)!

    2026上岸·考公考編培訓(xùn)報(bào)班

    • 報(bào)班類型
    • 姓名
    • 手機(jī)號
    • 驗(yàn)證碼
    關(guān)于我們 | 聯(lián)系我們 | 人才招聘 | 網(wǎng)站聲明 | 網(wǎng)站幫助 | 非正式的簡要咨詢 | 簡要咨詢須知 | 新媒體/短視頻平臺 | 手機(jī)站點(diǎn) | 投訴建議
    工業(yè)和信息化部備案號:滇ICP備2023014141號-1 云南省教育廳備案號:云教ICP備0901021 滇公網(wǎng)安備53010202001879號 人力資源服務(wù)許可證:(云)人服證字(2023)第0102001523號
    云南網(wǎng)警備案專用圖標(biāo)
    聯(lián)系電話:0871-65099533/13759567129 獲取招聘考試信息及咨詢關(guān)注公眾號:hfpxwx
    咨詢QQ:1093837350(9:00—18:00)版權(quán)所有:易賢網(wǎng)
    云南網(wǎng)警報(bào)警專用圖標(biāo)