Java 中的抽像類 – 帶有示例

已發表: 2022-06-24

數據抽像是隱藏某些信息並僅向用戶顯示所需細節的技術。 這種數據抽象可以通過兩種方式實現,抽像類和接口。

目錄

Java中的抽像類是什麼?

Java 中的抽像類是用 abstract 關鍵字封裝或聲明的受限類。 抽像類可以同時具有抽象方法和非抽象方法。 它不能用於創建對象。 要訪問一個抽像類,它必須從另一個類繼承。

從世界頂級大學在線學習軟件開發課程。 獲得行政 PG 課程、高級證書課程或碩士課程,以加快您的職業生涯。

抽像類規則

  • 抽像類只能在抽象關鍵字中聲明。
  • 它可以包含抽象方法和非抽象方法。
  • 它也可以有 final 方法。
  • 它永遠不能被實例化。
  • 也可以使用構造函數和靜態方法。

抽像類的例子:

抽像類 B{}

Java中的抽象方法

此方法只能在抽像類中使用,並且不包含主體。 主體將由繼承的子類提供。

抽象方法的一個例子是:

抽象無效打印狀態(); //沒有方法體和抽象

帶有抽象方法的 Java 抽像類示例

在以下示例中,汽車是一個抽像類,具有一個抽象方法 run。 該實現由 Audi 類提供。

抽像類汽車{

抽象無效運行();

}

Audi4 類擴展 Bike{

void run(){System.out.println(“運行良好”);}

公共靜態無效主要(字符串參數[]){

汽車 obj = new Audi4();

obj.run();

}

}

程序的輸出將是“運行良好”。

大多數情況下,實現類是未知的(數據抽象),通過工廠方法獲得實現類的一個對象。

返回類實例的方法稱為工廠方法。

帶有工廠方法的 Java 抽像類示例

在下面的示例中,創建 square 類的實例, Square 類的 draw() 方法被啟動。

抽像類形狀{

抽象的無效繪製();

}

//在實際場景中,實現由其他人提供,即最終用戶未知

類方形擴展形狀{

void draw(){System.out.println(“繪圖方塊”);}

}

類 Circle1 擴展形狀{

void draw(){System.out.println(“繪製六邊形”);}

}

//在實際場景中,方法由程序員或用戶調用

類測試抽象1{

公共靜態無效主要(字符串參數[]){

Shape s=new Circle1();//在實際場景中,通過方法提供對象,例如getShape()方法

s.draw();

}

}

上述程序的輸出將是“繪製六邊形”。

軟件工程的熱門課程和文章

熱門節目
軟件開發執行 PG 計劃 - IIIT B 區塊鏈證書課程 - PURDUE 網絡安全證書計劃 - PURDUE 計算機科學理學碩士 - IIIT B
其他熱門文章
2021-22年美國雲工程師薪水 美國 AWS 解決方案架構師薪水 美國後端開發人員工資 美國前端開發人員薪水
美國網絡開發人員的薪水 2022 年 Scrum Master 面試問題 如何在 2022 年開始網絡安全職業? 工程專業學生在美國的職業選擇

什麼時候應該在 Java 中使用抽像類?

下面是一些可以使用抽像類的場景:

  • 當試圖通過使用基類的通用方法在代碼中引入繼承的概念(在各種相關類之間共享代碼)時。
  • 當要求具體且實施細節不完整時。
  • 當用於擴展抽像類的類具有多個需要非公共修飾符的公共字段或方法時。
  • 當使用非最終或非靜態方法來修改對象狀態時。

何時在 Java 中使用接口進行抽象?

以下場景需要Java接口來實現抽象:

  • 支持多重繼承的功能
  • 實現松耦合

聲明一個接口

接口只能通過 interface 關鍵字聲明。 這導致了完全抽象,因此所有繼承方法都在一個空主體中聲明,並且所有字段默認為 public、static 和 final。 實現接口的類應該實現接口中聲明的所有方法。

Java 接口示例

在下面的示例中,可打印接口只有一個方法,其實現在 A6 類中提供。

界面可打印{

無效打印();

}

A6 類實現可打印{

公共無效打印(){System.out.println(“歡迎”);}

公共靜態無效主要(字符串參數[]){

A6 obj = 新 A6();

obj.print();

}

}

該程序的輸出將是

歡迎。

示例 2:

接口銀行{

浮動利率();

}

BOI 類實現銀行{

公共浮動 rateOfInterest(){return 8.5f;}

}

CUB 類實現 Bank{

公共浮動 rateOfInterest(){return 9.2f;}

}

類測試接口2{

公共靜態無效主要(字符串[]參數){

銀行 b=new BOI();

System.out.println(“投資回報率:“+b.rateOfInterest());

}}

上述程序的輸出將是

投資回報率:8.5

Java中抽象的優點

  • 鬆散耦合: Java 中的抽象通過以指數級減輕依賴實體來幫助鬆散耦合。
  • 可重用代碼: Java 中的抽像類非常節省時間。 只有在必要時才能調用抽象方法。 抽像類避免重寫相同的代碼,從而節省時間。
  • 數據保護: Java 中的數據抽像有助於向用戶隱藏敏感的代碼細節。 它有助於隱藏重要的項目功能並僅顯示基本組件。
  • 更快地解決問題:借助動態方法解析,只需使用一種抽象方法即可解決各種問題和復雜性。

要了解有關 Java 和軟件開發中的數據抽象的更多信息,請註冊IIIT Bangalore 與 upGrad 聯合提供的軟件開發高級研究生課程

軟件開發行政研究生課程是一個為期 13 個月的在線課程。 該課程專為在職專業人士設計,讓他們專注於學習而不放棄工作。 課程包括基於行業的項目和案例研究。 此外,該計劃還有超過 10 場行業專家的現場會議,以幫助候選人及時了解行業的當前趨勢。

我們可以有一個沒有任何抽象方法的抽像類嗎?

是的。 可以有一個沒有任何抽象方法的抽像類,因為它們都是獨立的技術。 聲明一個抽像類意味著它不能自己實例化,只能在子類的幫助下完成。 定義抽象方法意味著該方法被定義或包含在子類中。

為什麼數據抽像很重要?

是的。 可以有一個沒有任何抽象方法的抽像類,因為它們都是獨立的技術。 聲明一個抽像類意味著它不能自己實例化,只能在子類的幫助下完成。 定義抽象方法意味著該方法被定義或包含在子類中。

數據抽象與控制抽像有何不同?

數據抽像是創建複雜和復雜的數據類型但僅突出或顯示基本細節的過程。 控制抽像是處理抽象的軟件部分的過程。 這是程序被分解或簡化的過程,程序執行的不需要的細節被隱藏起來。 控制抽象主要用於生成新功能並將各種控制語句混合到單個實體中。