搜尋
首頁Javajava教程在Java中的抽象類別

在Java中的抽象類別

Sep 22, 2023 am 11:53 AM
繼承(inheritance)實現(implementation)抽象類別(abstract class)

在Java中的抽象類別

在宣告中包含abstract關鍵字的類別稱為抽象類別。

  • 抽象類別可能包含也可能不包含抽象方法,即沒有主體的方法( public void get(); )
  • 但是,如果一個類別至少有一個抽象方法,則該類別必須聲明為抽象。
  • 如果一個類別宣告為抽象,則它不能被實例化。
  • 要使用抽象類,您必須從另一個類別繼承它,並提供其中抽象方法的實作。
  • 如果您繼承抽象類,則您有為其中的所有抽象方法提供實作。

範例

本節為您提供了抽象類別的範例。要建立抽象類,只需在類別聲明中的 class 關鍵字之前使用abstract 關鍵字即可。

/* File name : Employee.java */
public abstract class Employee {
   private String name; private String address; private int number;
   public Employee(String name, String address, int number) {
      System.out.println("Constructing an Employee");
      this.name = name; this.address = address;
      this.number = number;
   }
   public double computePay() {
      System.out.println("Inside Employee computePay"); return 0.0;
   }
   public void mailCheck() {
      System.out.println("Mailing a check to " + this.name + " " + this.address);
   }
   public String toString() {
      return name + " " + address + " " + number;
   }
   public String getName() {
      return name;
   }
   public String getAddress() {
      return address;
   }
   public void setAddress(String newAddress) {
      address = newAddress;
   }
   public int getNumber() {
      return number;
   }
}

您可以觀察到,除了抽象方法之外,Employee 類別與 Java 中的普通類別相同。這個類別現在是抽象的,但它仍然具有三個欄位、七個方法和一個建構函數。

現在您可以嘗試透過以下方式實例化 Employee 類別 - 

/* File name : AbstractDemo.java */
public class AbstractDemo {
   public static void main(String [] args) {
      /* Following is not allowed and would raise error */
      Employee e = new Employee("George W.", "Houston, TX", 43);
      System.out.println("\n Call mailCheck using Employee reference--");
      e.mailCheck();
    }
 }

#當你編譯上面的類別時,它會給出以下錯誤 - 

Employee.java:46: Employee is abstract; cannot be instantiated
Employee e = new Employee("George W.", "Houston, TX", 43); ^ 1 error  
#

以上是在Java中的抽象類別的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述
本文轉載於:tutorialspoint。如有侵權,請聯絡admin@php.cn刪除

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱工具

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

Dreamweaver Mac版

Dreamweaver Mac版

視覺化網頁開發工具

Atom編輯器mac版下載

Atom編輯器mac版下載

最受歡迎的的開源編輯器

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

MinGW - Minimalist GNU for Windows

MinGW - Minimalist GNU for Windows

這個專案正在遷移到osdn.net/projects/mingw的過程中,你可以繼續在那裡關注我們。 MinGW:GNU編譯器集合(GCC)的本機Windows移植版本,可自由分發的導入函式庫和用於建置本機Windows應用程式的頭檔;包括對MSVC執行時間的擴展,以支援C99功能。 MinGW的所有軟體都可以在64位元Windows平台上運作。