一、基礎篇--1.1Java基礎-抽象類和介面的區別
抽象類和介面的區別
抽象類和介面在設計層面的區別主要體現在:介面是對動作的抽象,抽象類是對根源、類的抽象。抽象類表示的是,這個物件是什麼,介面表示的是,這個物件可以做什麼。
比如,男人、女人是人,人是男人女人的抽象類。人可以吃東西,動物也可以吃東西,人還有各種行為,吃東西就可以定義為一種介面。
語法上具體的異同如下:
1、不管是抽象類還是介面都不能例項化。
2、抽象類要被子類繼承,介面要被類實現。
3、抽象類中可以有具體的方法實現,介面中只能做方法說明。
4、接口裡定義的變數只能是公共的靜態的常量,抽象類中的變數是普通變數。
5、抽象類裡的抽象方法必須全部被子類所實現,如果子類不能全部實現父類抽象方法,那麼該子類只能是抽象類。同樣,一個實現介面的時候,如不能全部實現介面方法,那麼該類也只能為抽象類。
6、抽象類裡可以沒有抽象方法(沒有抽象方法就沒必要定義為抽象類,只是語法上可以這麼寫,非常不建議)
7、抽象方法要被實現,所以不能是靜態的,也不能是私有的,final的。
8、介面可以繼承介面,並且可以繼承多個介面,但是類只能繼承一個介面。
9、類只能單繼承,可以實現多個介面。
10、介面預設許可權是public,必須是public。
相關推薦
一、基礎篇--1.1Java基礎-抽象類和介面的區別
抽象類和介面的區別 抽象類和介面在設計層面的區別主要體現在:介面是對動作的抽象,抽象類是對根源、類的抽象。抽象類表示的是,這個物件是什麼,介面表示的是,這個物件可以做什麼。 比如,男人、女人是人,人是男人女人的抽象類。人可以吃東西,動物也可以吃東西,人還有各種行為,吃東西就可以定義為一種介面。 語法上具
一、基礎篇--1.1Java基礎-final, finally, finalize 的區別
final, finally, finalize 首先,這三個關鍵字沒什麼關聯,只是放在一起比較像,用法用處完全不同。 final: final關鍵字可以用來修飾類、方法、變數(成員變數和區域性變數),final用的多,下面詳細介紹下 1.1 final 修飾類 final
一、基礎篇--1.1Java基礎-Exception、Error、RuntimeException與一般異常有何異同
Throwable、Error、Exception、RuntimeException 關係如下類圖所示: Throwable: Throwable類是java語言中所有錯誤或者異常的超類。它的兩個子類是Error和Exception。 Error: Error是Throwable的子類,
Java基礎篇(三)--- 抽象類,介面,final,單目運算子
多型 ①父類引用指向子類: java允許父類的引用變數引用它的子類的例項(物件) Animal animal = new Cat(); 這種轉換是自動完成的 子類在一定條件下是可以轉換為父類的 ②繼承: 類的單繼承和介面的多繼承,都能體現多型 ③重寫、過載 過載:同一個類的同名函式(方法的引
Java基礎複習第九天:抽象類和介面
一 抽象類 1.由來 父類中的方法,如果所有子類都要重寫,那麼此時父類的方法體就失去了意義 那麼我們可以把方法體去掉,只留方法的宣告,這種只有方法宣告沒有方法實現的方法稱為 抽象方法 含有抽象方法的類一定是抽象類 子類如果繼承了抽象類,那麼必須重寫抽象類中所有的抽象
30、不一樣的C++系列--抽象類和介面
抽象類和介面 抽象類 面向物件中的抽象類 可用於表示現實世界中的抽象概念 是一種智慧定義型別,而不能產生物件的類 只能被繼承並重寫相關函式 直接特徵是相關函式沒有完整的實現 Shape是現實
抽象類和介面區別
抽象類: 一個類被abstract關鍵字修飾就是抽象類。 定義很簡短,可能會有很多朋友質疑,《java程式設計思想》中說含有抽象方法的類就是抽象類,我試了下只要用abstract修飾的都是抽象類,就算裡面不含有抽象方法,語法層面也是正確的。下面所有關於抽象類的總結都是基於
抽象類和介面區別及應用場景
區別如下: 1.抽象類是對類的抽象(包括了屬性和對應的行為). 介面是對某一個行為動作的抽象。 2.抽象類只能單繼承,介面可以實現多繼承。 3.介面中定義的方法不能實現,即使不顯示的將方法宣告為public,他們也是 public。 抽象類中的方法可以
Java學習日記基礎篇(六)—— 抽象類、接口、final
技術 註意事項 sys png put system 全局變量 它的 camera 抽象類 為什麽要有抽象類? 因為父類方法有不確定性,我們在Animal中定義了一個方法,但是它會被子類的方法覆蓋掉,我們就不知道這個方法原本是做什麽的 1 public class
JAVA基礎複習(三)繼承、多型、抽象類和介面
1、超類也稱為父類或者基類,次類又稱為子類或者拓展類、派生類。子類從它的父類中繼承可訪問的資料域和方法,還可以新增新資料域和新方法。 2、繼承:子類並不是父類的一個子集,子類比它的父類包含更多的資訊和方法;父類中的私有資料域在該類之外是不可訪問的;不是所有是一種關係都應該用繼承來建模,但是繼承是
基礎篇——抽象類和介面的區別
寫程式碼的四點: 1.明確需求。要做什麼? 2.分析思路。要怎麼做?(1,2,3……) 3.確定步驟。每一個思路要用到哪些語句、方法和物件。 4.程式碼實現。用具體的語言程式碼將思路實現出來。 學習新技術的四點:
夯實Java基礎系列6:一文搞懂抽象類和介面,從基礎到面試題,揭祕其本質區別!
目錄 抽象類介紹 為什麼要用抽象類 一個抽象類小故事 一個抽象類小遊戲 介面介紹 介面與類相似點: 介面與類的區別: 介面特性 抽象類和介面的區別 介面的使用: 介面最佳實踐:設計模式中的工廠模式 介面與抽象類的本質區別是什麼? 基本語法區別 設計思想區別 如何回答面試題:介面和抽象類的區別?
java基礎複習(抽象類和介面)
介面中的資料域只能是public static final,方法只能是public abstract 由於這個原因,這些修飾也可以忽略。 資料域只能是static final的原因: stackoverflow上: An interface can’t ha
Java基礎-----抽象類和介面的區別
成員區別 (1)抽象類: 1、成員變數:可以是變數,也可以是常量。 2、構造方法:有。 3、成員方法:可以抽象,也可以非抽象。 (2)介面: 1、成員變數:只可以是常量。 2、成員方法:只可以抽象,也可以非抽象。 設計理念區別 (1)抽
JAVA核心技術I---JAVA基礎知識(抽象類和介面)
一:抽象類 (一)定義 類:屬性(0或多個)+方法(0或多個)一個完整(健康)的類:所有的方法都有實現(方法體)類可以沒有方法,但是有方法就肯定要有實現,這才是一個完整的類一個完整的類才可以被例項化,被new出來如果一個類暫時有方法未實現,需要被定義為抽象類 (二)實現 抽象類關鍵字a
關於抽象類和介面的易錯概念選擇題(JAVA基礎)
1.以下方法錯誤的是(A D) A 覆蓋方法包括成員方法的覆蓋和成員變數的覆蓋 B 成員方法的覆蓋是多型的一種表現形式 C 子類可以呼叫父類中被覆蓋的方法 D 任何方法都可以被覆蓋 分析:在子類中呼叫父類方法使用super關鍵字。super.a() 就可以呼叫父類的a方法。 在類繼承或者介面實現
Java基礎5——深入理解抽象類和介面
抽象類和介面 抽象方法和抽象類 抽象方法是一種特殊的方法:它只有宣告,而沒有具體的實現。抽象方法的宣告格式為: abstract void f(); 《Java程式設計思想》一書中將抽象類定義為包含抽象方法的類,但準確來說,包含抽象方法的類一定是抽象類,但抽象類不
Java基礎 實驗四 抽象類和介面
一、實驗內容 1、定義一個抽象類Shape,它包含一個抽象方法getArea(),從Shape類派生出Rectangle和Circle類,這兩個類都用getArea()方法計算物件的面積。編寫應用程式使用Rectangle和Circle類。 實驗要求:定義Re
一篇文章讓你徹底理解java中抽象類和介面
目錄 1、我所理解的抽象類 2、我所理解的介面 3、抽象類和介面本質區別 相信大家都有這種感覺:抽象類與介面這兩者有太多相似的地方,又有太多不同的地方。往往這二者可以讓初學者摸不著頭腦,無論是在
Java抽象類和介面(一)
**********************第九章 抽象類和介面************************** **************************抽象類************************** 一.why 什麼時候想到使用抽象類 需求: 矩形、三角形、