日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術文章
文章詳情頁

Java中接口和抽象類的區別詳解

瀏覽:40日期:2022-08-28 13:33:01

需求:接口是否可繼承接口?抽象類是否可實現(implements)接口?抽象類是否可繼承實體類(concrete class)?抽象類中是否可以有靜態的main方法?

先說明二者的定義,然后聊聊需求,最后分析二者的區別。

含有abstract修飾符的類即為抽象類,抽象類不能創建實例對象。含有抽象方法的類必須定義為abstract class。在abstract class中,方法不必是抽象的,但是抽象方法必須在具體子類中實現,所以,不能有抽象構造方法或抽象靜態方法。子類如果沒有實現抽象父類中的所有抽象方法,則必須定義為abstract類型。抽象類需要被繼承才能使用,而被final修飾的類無法被繼承,所以abstract和final是不能共存的。

接口(interface)可以說成是抽象類的一種特例,接口中的所有方法都必須是抽象的。接口中的方法定義默認為public abstract類型,接口中的成員變量類型默認為public static final。

接口可以繼承接口。

抽象類可以實現(implements)接口。

抽象類可以繼承實體類。但和實體類的繼承一樣,也要求父類可繼承,并且擁有子類可以訪問到的構造函數。其實Object就是個實體類,Java的API文檔里,每個抽象類的條目里都明確寫著直接或間接繼承自Object,所以這點是沒有疑問的。

抽象類中可以有靜態的main方法。下面分析二者的區別。

備注:只要明白了接口和抽象類的本質和作用,這些問題都很好回答,你想想,如果你是java語言的設計者,你是否會提供這樣的支持,如果不提供的話,有什么理由嗎?如果你沒有道理不提供,那答案就是肯定的了。

只有記住抽象類與普通類的區別就是①不能創建實例對象,②允許有abstract方法。也可以這么理解——抽象類就是一個不能實例化的普通類,不過如果方法加了abstract,那么就必須在子類里面重寫。

抽象類 接口 方法默認實現 支持 不支持,接口完全是抽象的 實現 子類使用extends關鍵字來繼承抽象類。子類如果不是抽象類,需要實現抽象類中聲明的所有抽象方法 子類使用關鍵字implements來實現接口,需要實現接口中聲明的所有方法 是否有構造函數 是 否 與正常Java類的區別 不能實例化抽象類,因為有abstract方法 接口是完全不同的類型 訪問修飾符 public、protected和default 只有public main方法 支持 不支持 多繼承 繼承一個類和實現多個接口 只可以繼承一個或多個其它接口 速度 速度快 稍微有點慢,因為它需要時間去尋找在類中實現的方法 添加新方法 添加后可以給它提供默認的實現,故不需要改變現在的代碼 添加后必須改變實現該接口的類

抽象類為什么不能實例化對象?

現實生活中也有抽象類的例子,比如說人類是一個抽象類,無法創建一個稱作人類的對象,但是,人可以在繼承人類后來創建對象。況且抽象類中的抽象方法只有聲明,沒有主體,如果實例化了,又如何去實現調用呢?

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

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

下面接著再說說兩者在應用上的區別。接口更多的是在系統架構設計方法發揮作用,主要用于定義模塊之間的通信契約。而抽象類在代碼實現方面發揮作用,可以實現代碼的重用,例如,模板方法設計模式是抽象類的一個典型應用,假設某個項目的所有HTTP請求都要用相同的方式進行權限判斷、訪問日志記錄和異常處理,那么就可以定義一個抽象的基類,讓所有的controller都繼承這個抽象基類,在抽象基類的service方法中實現上述功能,在各個子類中只是完成各自的業務邏輯代碼,偽代碼如下:

import java.io.IOException;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse; public abstract class BaseServlet extends HttpServlet {public final void service(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException { // 記錄訪問日志 // 進行權限判斷} protected abstract void doService(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException; // 注意訪問權限定義成protected,顯得既專業,又嚴謹,因為它是專門給子類用的} class MyServlet1 extends BaseServlet { protected void doService(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException { // 本Servlet只處理的具體業務邏輯代碼 }}

父類方法中間的某段代碼不確定,留給子類干,就用模板方法設計模式。

備注:這道題的思路是先從總體解釋抽象類和接口的基本概念,然后再比較兩者的語法細節,最后再說兩者的應用區別。比較兩者語法細節區別的條理是:先從一個類中的構造方法、普通成員變量和方法(包括抽象方法),靜態變量和方法,繼承性等6個方面逐一去比較回答,接著從第三者繼承的角度的回答,特別是最后用了一個典型的例子來展現自己深厚的技術功底。

到此這篇關于Java中接口和抽象類的區別詳解的文章就介紹到這了,更多相關Java 接口 抽象類內容請搜索好吧啦網以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持好吧啦網!

標簽: Java
相關文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
一区在线视频观看| 91午夜精品| 久久这里只有| 久久久久久久久久久9不雅视频| 国产日产一区| bbw在线视频| 中文字幕高清在线播放| 久久xxxx精品视频| 日韩精品成人在线观看| 不卡一二三区| 精品久久久久中文字幕小说| 国产91精品对白在线播放| 中文字幕成在线观看| 亚洲日本三级| 91看片一区| 999国产精品| 麻豆亚洲精品| 午夜精品影视国产一区在线麻豆| 日本亚洲视频| 麻豆视频在线看| 日韩视频一区| 99视频精品| 亚洲自啪免费| 香蕉久久99| 91精品推荐| 午夜精品亚洲| 麻豆精品av| 每日更新成人在线视频| 日本不良网站在线观看| 久久理论电影| 国产精品igao视频网网址不卡日韩| 欧美91视频| 久久最新视频| 国产精品magnet| 日韩高清不卡| 久久久精品午夜少妇| 91亚洲精品视频在线观看| 日韩成人一级| 激情五月色综合国产精品| 日韩高清一区| 亚洲a级精品| 日韩成人综合| 日韩综合小视频| 在线观看精品| 国产精品一区二区精品视频观看 | 蜜桃av.网站在线观看| 亚洲毛片视频| 精品久久国产一区| 日韩国产成人精品| av成人国产| 久久精品99国产精品日本| 久久精品国产亚洲夜色av网站| 蜜臀av性久久久久蜜臀aⅴ流畅| 国产亚洲第一伦理第一区| 国产精品毛片一区二区三区| 日本亚洲三级在线| 亚洲乱码久久| 99视频在线精品国自产拍免费观看| 日本成人在线视频网站| 久久精品国产大片免费观看| 欧美www视频在线观看| 一区二区三区网站| 91国语精品自产拍| 蜜桃一区二区三区在线| 中文字幕日本一区二区| 在线亚洲国产精品网站| 麻豆国产精品一区二区三区| 青青草伊人久久| 一区二区三区四区在线观看国产日韩| 精品视频一区二区三区四区五区| 国产美女久久| 在线一区电影| 欧美日韩激情在线一区二区三区| 国模 一区 二区 三区| 你懂的亚洲视频| 日韩超碰人人爽人人做人人添| 中文无码日韩欧| 久久福利毛片| 欧美日韩国产免费观看视频| 999国产精品视频| 久久久蜜桃一区二区人| 香蕉成人av| 欧美国产另类| 精品久久久网| 国产精品极品在线观看| 久久午夜影视| 久久aⅴ国产紧身牛仔裤| 日韩成人免费| 日韩中文在线电影| 国产一区三区在线播放| 综合一区在线| 中文字幕一区二区av| jizzjizz中国精品麻豆| 国产精品av一区二区| 国产精品视区| 四虎精品一区二区免费| 欧美日韩亚洲一区三区| 国产精品a级| 国产一区二区三区久久| 国产一区观看| 中文精品在线| 中文视频一区| 中日韩男男gay无套| 亚洲资源在线| 欧美网站在线| 女同性一区二区三区人了人一| 欧美天堂视频| 精品美女视频| 成人日韩av| 精品色999| 国产毛片一区| 日韩精品久久理论片| 免费在线观看日韩欧美| 国产一卡不卡| 亚洲精选久久| 成年男女免费视频网站不卡| 亚洲免费播放| 日韩成人高清| 国模 一区 二区 三区| 日韩精品网站| 国产精品88久久久久久| 亚洲精品系列| 亚洲香蕉视频| 国产欧美日韩综合一区在线播放| 欧美国产专区| 亚洲婷婷丁香| 久久黄色影视| 天堂日韩电影| 91麻豆精品激情在线观看最新| 亚洲精选成人| 激情国产在线| 久久麻豆精品| 日韩欧美激情电影| 日韩精品一区二区三区免费视频| 精品国产亚洲日本| 福利在线免费视频| av高清不卡| 蜜桃视频在线观看一区| 日韩av中文在线观看| 日韩精品中文字幕第1页| 在线天堂中文资源最新版| av高清一区| 欧美精品影院| 欧美不卡在线| 精品一区二区三区中文字幕 | 国产精品极品在线观看| 久久激情一区| 日本午夜精品视频在线观看| 日韩极品在线观看| 91麻豆精品激情在线观看最新| 精品国模一区二区三区| 国产日韩一区二区三免费高清| 欧美国产先锋| 首页国产欧美久久| 国产精品美女午夜爽爽| 国产一区导航| 亚洲精品午夜av福利久久蜜桃| 国产免费成人| 久久中文字幕一区二区| 日韩在线精品| 国产精久久久| 亚洲精品韩国| 一区二区三区视频免费观看 | 免费毛片在线不卡| 亚洲福利免费| 美女久久一区| 日韩免费看片| 国产精品免费不| 亚洲精品激情| 亚洲男女av一区二区| 国产成人精品一区二区免费看京| 黄在线观看免费网站ktv| 99国产精品99久久久久久粉嫩| 大香伊人久久精品一区二区| 99久久九九| 综合欧美亚洲| 蜜臀久久99精品久久一区二区 | 一区二区精品| 99视频精品全国免费| 蜜臀av性久久久久蜜臀aⅴ四虎| 国产免费av国片精品草莓男男| 亚洲无线观看| 精品视频91| 奇米狠狠一区二区三区| 日韩欧美在线中字| 国产精品成人一区二区网站软件| 日韩高清欧美| 岛国av在线网站| 久久精品国产福利| 国产精品日本| 精品九九在线| 91精品久久久久久久久久不卡| 国产成人久久精品麻豆二区 | 在线精品一区| 日本在线观看不卡视频| 久草免费在线视频| 国产精品夜夜夜| 99精品网站| 国产乱码午夜在线视频| 日韩一区二区三免费高清在线观看 |