Java語言中,用abstract 關鍵字來修飾一個類別時,這個類別叫作抽象類別。抽象類別是它的所有子類別的公共屬性的集合,是包含一個或多個抽象方法的類別。
抽象類別可以看成是類別的進一步抽象。在物件導向領域,抽象類別主要用來進行類型隱藏。
抽象方法 (建議學習:java課程)
#在抽象類別中可以包含一般方法與抽象方法。抽象方法的定義與一般方法不同,抽象方法在方法頭後面直接跟分號,而一般方法含有以大括號框住的方法體。所有的抽象方法必須存在於抽象類別中。
在抽象類別中定義的方法稱為抽象方法,這些方法只有方法頭的聲明,而用一個分號來取代方法體的定義,即只定義成員方法的介面形式,而沒有具體操作。
只有衍生類別對抽象成員方法的重定義才能真正實現與該衍生類別相關的操作。
在各子類別繼承了父類別的抽象方法之後,再分別用不同的語句和方法體來重新定義它,形成若干個名字相同、返回值相同、參數列表相同、目的一致但是具體實作有一定差別的方法。
抽象類別中定義抽象方法的目的是實作一個接口,即所有的子類別對外都呈現一個相同名字的方法。
在Java語言中使用abstract class來定義抽象類別。如下實例:
/* 文件名 : 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 類別沒有什麼不同,儘管該類別是抽象類,但是它仍然有 3 個成員變量,7 個成員方法和 1 個建構方法。
但是需要繼承重寫抽象方法,不能直接實例化。
以上是java抽象類別是什麼的詳細內容。更多資訊請關注PHP中文網其他相關文章!