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