什么是java抽象類

本篇文章為大家展示了什么是java抽象類,代碼簡明扼要并且容易理解,絕對能使你眼前一亮,通過這篇文章的詳細(xì)介紹希望你能有所收獲。

創(chuàng)新互聯(lián)建站長期為成百上千客戶提供的網(wǎng)站建設(shè)服務(wù),團(tuán)隊(duì)從業(yè)經(jīng)驗(yàn)10年,關(guān)注不同地域、不同群體,并針對不同對象提供差異化的產(chǎn)品和服務(wù);打造開放共贏平臺,與合作伙伴共同營造健康的互聯(lián)網(wǎng)生態(tài)環(huán)境。為鹽田企業(yè)提供專業(yè)的成都網(wǎng)站設(shè)計(jì)、成都做網(wǎng)站,鹽田網(wǎng)站改版等技術(shù)服務(wù)。擁有10年豐富建站經(jīng)驗(yàn)和眾多成功案例,為您定制開發(fā)。

1、區(qū)分普通方法和抽象方法

在java中,當(dāng)一個(gè)類的方法被abstract關(guān)鍵字修飾時(shí),該方法就稱為抽象方法,而抽象方法所在的類必須被定義為抽象類。當(dāng)一個(gè)方法被定義為抽象方法后,意味著該方法不會(huì)有具體的實(shí)現(xiàn),而是在抽象類的子類中通過方法重寫進(jìn)行實(shí)現(xiàn)。

2、定義抽象方法的語法格式:

[訪問修飾符]abstract<返回類型><方法名>([參數(shù)列表])

abstract關(guān)鍵字表示該方法被定義為抽象方法。

3、普通方法和抽象方法的對比

抽象方法需要用abstract關(guān)鍵字修飾,普通方法不需要;

普通方法有方法體,抽象方法沒有方法體。

4、區(qū)分普通類和抽象類

在java中,當(dāng)一個(gè)類被abstract修飾時(shí),該類被稱為抽象類。

5、普通類和抽象類的區(qū)別

抽象類需要使用abstract關(guān)鍵字修飾,普通類不需要;

普通類可以實(shí)例化,抽象類不能被實(shí)例化。

6、代碼示例:

父類

package demo.chongwu;

public abstract class Pet {
    private String name = "無名氏";
    private int health =100;
    private int love =0;
    //有參構(gòu)造方法
    public  Pet (String name){
        this.name =name;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getHealth() {
        return health;
    }

    public void setHealth(int health) {
        this.health = health;
    }

    public int getLove() {
        return love;
    }

    public void setLove(int love) {
        this.love = love;
    }

    //抽象方法,輸出寵物信息
    public abstract void print();

}

子類

package demo.chongwu;

public class Dog  extends Pet{
    private String strain;

    public Dog(String name, String strain) {
        super(name);
        this.strain = strain;
    }

    public String getStrain() {
        return strain;
    }

    public void setStrain(String strain) {
        this.strain = strain;
    }

    @Override
    public void print() {
        System.out.println("我的名字是"+this.getName()+"我是一只"+this.strain+".");
    }
}

測試:

package demo.chongwu;

public class Test {
    public static void main(String[] args) {
        Pet pet =new Dog("布爾","拉布拉多");
        pet.print();
    }
}
輸出結(jié)果:
我的名字是布爾我是一只拉布拉多.

說明:

通過將print方法抽象化,并且在子類里重寫父類的print方法,這時(shí)候可以實(shí)例化子類得到子類對象,并且通過子類對象調(diào)用子類方法,從而輸出子類信息。否則不這么做的話,無法直接實(shí)例化抽象類,將無法輸出正確子類信息。

(視頻教程推薦:java視頻教程)

7、抽象類和抽象方法的優(yōu)勢與局限性

優(yōu)勢:

抽象類中已經(jīng)實(shí)現(xiàn)的方法可以被其子類使用,使得代碼可以被復(fù)用;

為子類提供了抽象方法,提供了子類具有自身的獨(dú)特性。

抽象類的局限性:

父類的方法不一定通用,因?yàn)樽宇惖姆椒ū容^特殊;

子類繼承父類抽象類時(shí),寫出來的方法可能會(huì)出現(xiàn)代碼重復(fù)的情況。

上述內(nèi)容就是什么是java抽象類,你們學(xué)到知識或技能了嗎?如果還想學(xué)到更多技能或者豐富自己的知識儲備,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。

名稱欄目:什么是java抽象類
鏈接URL:http://muchs.cn/article2/jooioc.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供定制開發(fā)、建站公司、標(biāo)簽優(yōu)化移動(dòng)網(wǎng)站建設(shè)、動(dòng)態(tài)網(wǎng)站、網(wǎng)站內(nèi)鏈

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

成都網(wǎng)頁設(shè)計(jì)公司