首頁  >  文章  >  Java  >  java什麼是抽象類

java什麼是抽象類

爱喝马黛茶的安东尼
爱喝马黛茶的安东尼原創
2019-11-12 17:04:065635瀏覽

java什麼是抽象類

一、什麼是抽象類別

#由abstract修飾的方法叫抽象方法;由abstract修飾的類別叫抽象類別。抽象的類別無法進行實例化,因為他不是具體存在的類,或者說這樣的類別還不夠完善,不能直接使用new關鍵字呼叫其建構器來產生該類別的物件。我們可以使用abstract定義一個抽象類別和抽象方法,範例程式碼如下:

abstract class 类名
{
abstract int 方法名(int x,int y);
}

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

我們總結抽象類別的特點:

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

(2)建構方法和static 方法不能是抽象的;

(3)父類別的抽象方法往往在子類別中實作;

(4)抽象類別可以具有指向子類別物件的物件參考。

二、抽象類別的範例

我們先來看看要完成的實際範例:

#1、定義抽象類別員工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("我是会计");
    }
}

php中文網,大量的免費Java入門教學,歡迎線上學習!

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

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn