Java 抽象類
java 抽象類
如果一個類中沒有包含足夠的信息來描繪一個具體的對象,這樣的類稱為抽象類。抽象類無法進行范例化,不能直接使用 new 關鍵字調用其構造器生成該類的對象。
在 java 語言中由 abstract 修飾的類叫抽象類,由 abstract 修飾的方法叫抽象方法。
1. java 抽象類的定義語法
abstract class 類名 { abstract int 方法名(); }
抽象方法沒有方法體,也就是方法后面是沒有大括號及其包含的代碼。在抽象類中既可以有抽象方法,也可以有普通方法。
凡是繼承這個抽象類的實體子類,都必須要實現所有的抽象方法。
2. java 抽象類的特點
- (1)抽象類不能被范例化。
- (2)構造方法 和 static 方法不能抽象。
- (3)父類的抽象方法需要在子類中實現。
- (4)抽象類可以具有指向子類對象的對象引用。
3. java 抽象類的范例
1)定義抽象類:employee
/** * 員工類 */ public abstract class employee { protected string name; protected boolean gender; public employee(string name, boolean gender){ this.name=name; this.gender=gender; } /** * 領工資操作 */ public abstract void getsalary(); public void getname(){ system.out.println("我是" + name); } }
2)繼承抽象類:manager
新建一個經理類 manager,繼承抽象類 employee。我們必須要重寫抽象方法 getsalary。
/** * 經理類 */ public class manager extends employee{ public manager(string name,boolean gender){ super(name,gender); } //重寫父類的抽象方法 public void getsalary(){ system.out.println("經理領9000元工資"); } }
3)繼承抽象類:accountant
新建一個會計類 accountant,繼承抽象類 employee。我們必須要重寫抽象方法 getsalary。
/** * 會計類 */ public class accountant extends employee{ public accountant(string name,boolean gender){ super(name,gender); } //重寫父類的抽象方法 public void getsalary(){ system.out.println("會計領7000元工資"); } }
4)抽象類測試
public class abstracttest { public static void main(string[] args) { manager manager = new manager("張經理", true); manager.getname(); manager.getsalary(); accountant accountant = new accountant("李會計", false); accountant.getname(); accountant.getsalary(); } }
運行執行結果:
$ javac abstracttest.java $ java abstracttest 我是張經理 經理領9000元工資 我是李會計 會計領7000元工資