溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

java的抽象類是什么

發(fā)布時間:2020-06-29 09:43:57 來源:億速云 閱讀:171 作者:Leah 欄目:編程語言

java的抽象類是什么?很多新手對此不是很清楚,為了幫助大家解決這個難題,下面小編將為大家詳細講解,有這方面需求的人可以來學(xué)習(xí)下,希望你能有所收獲。

一、什么是抽象類

由abstract修飾的方法叫抽象方法;由abstract修飾的類叫抽象類。抽象的類無法進行實例化,因為他不是具體存在的類,或者說這樣的類還不夠完善,不能直接使用new關(guān)鍵字調(diào)用其構(gòu)造器生成該類的對象。我們可以使用abstract定義一個抽象類和抽象方法,示例代碼如下:

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

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

我們總結(jié)一下抽象類的特點:

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

(2)構(gòu)造方法 和 static 方法不能是抽象的;

(3)父類的抽象方法往往在子類中實現(xiàn);

(4)抽象類可以具有指向子類對象的對象引用。

二、抽象類的例子

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

1、定義抽象類員工Employee;

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

(b)定義抽象方法函數(shù)getsalary()表示領(lǐng)工資的操作。

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

(d)擁有(姓名name,性別gender)參數(shù)的構(gòu)造函數(shù)。

定義一個經(jīng)理類Manager派生于員工;

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

(b)經(jīng)理領(lǐng)7000元工資,打印并輸出工資。

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

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

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

(b)會計領(lǐng)3000元工資,打印并輸出工資。

(c)重寫父類的whoami(),調(diào)用父類的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;
    }
    /**
    * 表示領(lǐng)工資的操作
    */
    public abstract void getsalary();
    public void whoami(){
        System.out.println("我是"+name);
    }
}

我們新建一個經(jīng)理類Manager,繼承Employee類,這時候Eclipse就提示我們必須要重寫抽象方法getsalary。示例代碼如下:

/**
 * 經(jīng)理類
 */
public class Manager extends Employee{
    private String gree;
    
    public Manager(String name,boolean gender){
        super(name,gender);
    }
    //重寫父類的抽象方法
    public void getsalary(){
        System.out.println("經(jīng)理領(lǐng)7000元工資");
    }
    public void whoami(){
        super.whoami();//顯示調(diào)用父類的方法
        System.out.println("我是經(jīng)理");
    }
}

接下來是會計類。和上面的經(jīng)理類差不多了。

/**
 * 會計
 */
public class Accounting extends Employee {
    private int rating;
    public Accounting(String name, boolean gender) {
        super(name, gender);
    }
    @Override
    public void getsalary() {
        System.out.println("會計發(fā)3000工資");
    }
    public void whoami() {
        super.whoami();// 顯示調(diào)用父類的方法
        System.out.println("我是會計");
    }
}

看完上述內(nèi)容是否對您有幫助呢?如果還想對相關(guān)知識有進一步的了解或閱讀更多相關(guān)文章,請關(guān)注億速云行業(yè)資訊頻道,感謝您對億速云的支持。

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI