學習 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中的任何其他類一樣。 使它們與眾不同的是它們只有一種方法。