學習 Java 中的數據抽象
已發表: 2021-11-11數據抽象的概念可以通過一個真實的例子來解釋。 讓我們考慮一個例子,駕駛車輛的駕駛員知道踩剎車會阻止車輛進一步移動。 所以司機唯一知道的信息是他必須停止他的車輛移動,所以他應用了剎車。 但他不知道剎車時車輛如何停止的基本機制。 所以這個概念可以與數據抽象概念相比較,其中只顯示用戶需要知道的信息。 底層信息被隱藏起來。 所以,這就是抽象的概念,當它應用在數據中時,稱為數據抽象。
面向對象編程提供了利用數據抽象概念的方法。 Java是面向對象編程的一種,遵循數據抽象的特點。 在這些編程語言中,抽像類和接口用於實現數據抽象。
Java中數據抽象的過程是通過類的抽像類來實現的。 除了抽像類之外,接口還用於數據抽象。 關鍵字“abstract”用作方法和類的非訪問修飾符。 當使用關鍵字訪問定義時,類是不允許創建對象的抽像類。 只有從另一個類繼承抽像類才可能加入。 抽象方法是那些只能在抽像類中使用的方法。 這些方法沒有方法體。
子類通常提供主體。 抽像類可以包含常規和抽象的方法。
目錄
抽像類和抽象方法的區別
抽像類和抽象方法的區別在於:
1. 抽像類是那些用關鍵字abstract 聲明的類。
2. 抽象方法是一種在沒有實現的情況下被聲明的方法。
3. 一個抽像類不需要在其內部擁有所有的抽象方法方法。 它還可以包含非抽象的方法。
4.每當一個方法被定義為抽象方法時,它也應該在子類中重新定義。 這將使覆蓋成為強制性並使子類抽象。
5. 如果任何類包含任何抽象方法,無論是一個抽象方法還是多個抽象方法,都應使用關鍵字abstract 聲明為abstract。
6. 抽像類不能包含任何對象。 不能使用 new 運算符來實例化抽像類。
7. 抽像類中總是存在默認構造函數。 此外,參數化構造函數可以存在於抽像類中。
Java 抽像類
Java 編程語言通過抽像類實現抽象。 抽像類可以定義為使用關鍵字“abstract”聲明的類,並帶有這些類無法實例化的特殊指令。 這些類可能包含也可能不包含抽象方法。
Java中抽像類的語法如下所示。
以上代碼取自https://www.softwaretestinghelp.com/what-is-abstraction-in-java/ 。
在上述語法中,可以觀察到抽象和非抽象方法都可以包含在抽像類中。 此外,關鍵字“abstract”放在類的聲明之前。
在此處閱讀有關 java 抽像類的更多信息
Java 抽象方法
Java 抽象方法是那些以關鍵字“abstract”開頭的方法,但沒有這些方法的實現。 Java 抽象方法在 Java 抽像類中聲明。
由於抽象方法,Java抽像類變得不完整,因為方法無法實現。 因此,在抽像類中包含抽象形式自然會使抽像類不完整。
它在子類中的實現可以使用抽象方法。 該子類將繼承抽像類並執行抽象方法的實現。 抽象方法的一般語法是
抽象的無效方法名(參數列表);
編寫摘要方法時應注意的一些規則
- 如果一個類包含多個抽象方法,那麼該類將成為一個抽像類。
- 在定義抽像類和方法時,除了“abstract”之外,不應該有任何關鍵字。
考慮到以上幾點,Java中不允許有以下可能性。
- 最終的
- 抽象的本地人
- 抽象靜態
- 抽象私有
- 抽象同步
- 抽象嚴格
Java中的數據抽象示例如下所示。
https://www.javatpoint.com/how-to-achieve-abstraction-in-java 。
以上代碼取自https://www.softwaretestinghelp.com/what-is-abstraction-in-java/ 。
在上面顯示的代碼中,有一個類 Bank。 Bank 類中有一個抽象方法,即 getInterestRate()。 聲明了另外兩個類 BOI 和 ICICI,它們繼承了類 Bank。 這些聲明的類繼承了 Bank 類,因此實現了返回利率的 getInterestRate() 方法。
銀行的一個對像是在主要方法中創建的。 銀行的對象由一個顯示利率的 ICICI 類對象組成。 在下一步中,也會創建 BOI 類的對象,它顯示利率。
通過接口進行數據抽象
接口類似於 Java 類,唯一的區別是接口中有空方法。 它也可以定義為由抽象方法和靜態常量組成的類。 接口中存在的每個方法都是公共的,並且不包含任何構造函數。 該接口用於實現數據抽象,也用於在Java中進行多重繼承。
Java中接口的一些特性是:
- 接口可用於實現完全抽象。
- 一個類可以使用多個接口,從而導致實現多個接口。
- 接口允許實現鬆散耦合。
該接口的語法如下所示:
上述語法來自https://www.javatpoint.com/how-to-achieve-abstraction-in-java 。
可以通過關鍵字“implements”使用接口。
抽像類和接口之間的一些區別是:
- 抽象方法和非抽象方法都可以包含在抽像類中。 而在接口中,只能存在抽象方法。
- 最終變量可能存在也可能不存在於抽像類中。 在接口中,變量可以是 final 作為默認變量。
- 類抽象可以具有非最終、最終、非靜態或靜態的變量。 而在接口中,可能只存在靜態和最終變量。
- 抽像類允許實現接口。 抽像類不能在接口中實現。
- 抽像類的繼承是通過關鍵字“extends”完成的。 接口的實現是通過關鍵字“implements”完成的。
- 抽像類可以實現多個接口,也可以通過抽像類擴展其他類。 而一個接口只能允許實現另一個接口。
- 除了公共成員之外,受保護的和私有的數據成員都包含在抽像類中。 而接口的成員默認情況下是公共的。
從世界頂級大學在線學習軟件課程。 獲得行政 PG 課程、高級證書課程或碩士課程,以加快您的職業生涯。
結論
本文描述了數據抽象的概念,並列出瞭如何在 Java 中實現數據抽象。 要獲得更多 Java 編程語言的經驗,您可以查看 upGrad 提供的軟件開發課程。 該課程專為在職專業人士而設計,將通過面向行業的項目培訓您,以培養所需的編程技能。 更多信息可以通過我們的網站檢索。 如需任何信息和幫助,可以聯繫我們的協助團隊。
數據抽像是一種軟件設計概念。 它解決的問題是創建獨立於它們操作的數據類型的數據結構和函數。 它將代碼與數據類型隔離開來,並允許在多種情況下使用相同的代碼。 當數據結構所表示的數據以及可以應用於它們的操作被明確定義時,就實現了數據抽象。 抽像在軟件開發中至關重要。 它是導致軟件更簡單、更小和更可靠的基本力量之一。 數據抽像是高級語言的重要組成部分。 java中的抽像是使用接口完成的。 要實現接口,還需要提供實現。 實際上,不需要繼承類來實現接口。 接口就像java中的任何其他類一樣。 使它們與眾不同的是它們只有一種方法。什麼是數據抽象?
Java中抽象的優點是什麼?
Java中如何實現抽象?