java中什麼是抽象類(abstract)

1、什麼是抽象類ide

由abstract修飾的方法叫抽象方法;由abstract修飾的類叫抽象類。抽象的類沒法進行實例化,由於他不是具體存在的類,或者說這樣的類還不夠完善,不能直接使用new關鍵字調用其構造器生成該類的對象。咱們能夠使用abstract定義一個抽象類和抽象方法,示例代碼以下:函數

abstract class 類名this

{spa

abstract int 方法名(int x,int y);code

}對象

抽象的方法沒有方法體。須要注意的是在抽象類中既能夠有抽象方法,也能夠有普通方法,注意抽象方法是沒有方法體的(也就是方法後面是沒有大括號的)。凡是繼承這個抽象類的實體子類,都必需要實現這個抽象方法。blog

咱們總結一下抽象類的特色:繼承

(1)抽象類不能被實例化ip

(2)構造方法 和 static 方法不能是抽象的get

(3)父類的抽象方法每每在子類中實現

(4)抽象類能夠具備指向子類對象的對象引用

2、抽象類的例子

咱們先來看看要完成的實際例子:

 

一、定義抽象類員工Employee,

(a)保護字段:姓名name,性別gender,年齡age等基本屬性。

(b)定義抽象方法函數getsalary()表示領工資的操做

(c)定義普通函數whoami()輸出 :我是+姓名

(d)擁有(姓名name,性別gender)參數的構造函數

定義一個經理類Manager 派生於員工;

(a)除了有員工等基本屬性外,還有崗位級別 gree私有屬性

(b)經理領7000元工資,打印並輸出工資。

(c)重寫父類的whoami(),調用父類的whoami()方法,再輸出:我是一名經理。

定義一個會計類Accounting,派生於員工類;

(a)除了有員工等基本屬性外,還有會計等級 rating私有屬性

(b)會計領3000元工資,打印並輸出工資。

(c)重寫父類的whoami(),調用父類的whoami()方法,再輸出:我是一名會計。

/**
 * 定義類員工Employee,
 */
public abstract class Employee {
    protected String name;
    protected boolean gender;
    protected int age;
    public Employee(String name,boolean gender){
        this.name=name;
        this.gender=gender;
    }
    /**
    * 表示領工資的操做
    */
    public abstract void getsalary();
    public void whoami(){
        System.out.println("我是"+name);
    }
}

 

 

咱們新建一個經理類Manager,繼承Employee類,這時候Eclipse就提示咱們必需要重寫抽象方法getsalary。示例代碼以下:

/**
 * 經理類
 */
public class Manager extends Employee{
    private String gree;
    
    public Manager(String name,boolean gender){
        super(name,gender);
    }
    //重寫父類的抽象方法
    public void getsalary(){
        System.out.println("經理領7000元工資");
    }

    public void whoami(){
        super.whoami();//顯示調用父類的方法
        System.out.println("我是經理");
    }
}

 

接下來是會計類。和上面的經理類差很少了。

/**
 * 會計
 */
public class Accounting extends Employee {
    private int rating;
    public Accounting(String name, boolean gender) {
        super(name, gender);
    }
    @Override
    public void getsalary() {
        System.out.println("會計發3000工資");
    }
    public void whoami() {
        super.whoami();// 顯示調用父類的方法
        System.out.println("我是會計");
    }
}
相關文章
相關標籤/搜索