国产成人精品久久免费动漫-国产成人精品天堂-国产成人精品区在线观看-国产成人精品日本-a级毛片无码免费真人-a级毛片毛片免费观看久潮喷

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

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

瀏覽:74日期:2022-09-04 11:42:46

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

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

抽象類

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

抽象類和接口的對(duì)比

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

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

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

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持好吧啦網(wǎng)。

標(biāo)簽: Java
相關(guān)文章:
主站蜘蛛池模板: 日韩一区国产二区欧美三区 | 国产欧美精品一区二区三区四区 | 看一级毛片国产一级毛片 | 国产成人a在一区线观看高清 | 免费一区二区三区视频狠狠 | 狼人激情网 | 亚洲一级高清在线中文字幕 | 怡红院在线观看 | 中文字幕在线看视频一区二区三区 | 国产网站免费 | 久久久视频在线 | 亚洲欧美成人综合久久久 | 国产在线91精品天天更新 | 亚洲国产精久久久久久久 | 成人欧美日韩 | 欧美日韩精品一区二区三区视频在线 | 欧美成人高清视频 | 欧美va在线播放免费观看 | 久久精品视频在线观看榴莲视频 | 亚洲精品一区二区三区在 | 日韩在线二区 | 亚洲视频国产视频 | 日韩 欧美 自拍 | 亚洲国产成人精品一区二区三区 | 日韩视频在线观看中字 | 欧美视频精品一区二区三区 | 成人欧美日韩高清不卡 | 欧美三级黄 | 国产边打电话边做对白刺激 | 免费aa在线观看 男人的天堂 | 久久久亚洲国产精品主播 | 国产欧美日韩精品一区二区三区 | 久久精品人人爽人人爽快 | 91九色精品国产 | 久久这里有精品视频 | 国产一区二区三区成人久久片 | 免费一极毛片 | 欧美人成人亚洲专区中文字幕 | 久久一区视频 | 国产高清在线视频 | av国产精品|