溫馨提示×

溫馨提示×

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

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

Java抽象類與接口實(shí)例分析

發(fā)布時(shí)間:2022-04-27 15:37:57 來源:億速云 閱讀:198 作者:iii 欄目:開發(fā)技術(shù)

這篇“Java抽象類與接口實(shí)例分析”文章的知識(shí)點(diǎn)大部分人都不太理解,所以小編給大家總結(jié)了以下內(nèi)容,內(nèi)容詳細(xì),步驟清晰,具有一定的借鑒價(jià)值,希望大家閱讀完這篇文章能有所收獲,下面我們一起來看看這篇“Java抽象類與接口實(shí)例分析”文章吧。

1.抽象類

1.1抽象類概念

我們都知道對象是通過類來進(jìn)行描述的,但是不是說所有的類都是用來描述對象的

一個(gè)類的類中沒有足夠的信息來描述一個(gè)具體的對象,這便是抽象類

抽象類的關(guān)鍵字:abstract

1.2抽象方法

首先還是看看之前寫過的類:

class Plant {
    String name;
    String source;
    String genus;
    public void trait() {
        System.out.println("父類方法");
    }
}
class Tree extends Plant {
    @Override
    public void trait() {
        System.out.println("子類方法");
    }
}

既然trait方法是重寫的方法,那么父類的trait根本就沒有實(shí)現(xiàn)的必要,所以我們可以將其改成抽象方法

注意:抽象類可以沒有抽象方法,但抽象方法必須在抽象類里面

abstract class Plant {
    String name;
    String source;
    String genus;
    public abstract void trait();
}
class Tree extends Plant {
    @Override
    public void trait() {
        System.out.println("子類方法");
    }
}

Java抽象類與接口實(shí)例分析

 1.3抽象類的細(xì)節(jié)

1.抽象類是用于被繼承的,所以無法實(shí)例化,除這點(diǎn)外它和普通的類沒有區(qū)別

2.抽象類里面可以沒有抽象方法,但抽象方法一定要在抽象類中

3.一個(gè)普通類繼承抽象類,要重寫抽象類里面所有的抽象方法

4.抽象類可以繼承抽象類,此時(shí)不需要重寫抽象方法

5.final無法修飾抽象類和抽象方法

6.抽象方法不能使用private和static修飾

可能會(huì)有人覺得奇怪:普通類也可以作為父類被繼承,為什么還要再弄一個(gè)抽象類出來?

我們不妨假設(shè)一個(gè)場景:你在實(shí)例化對象的時(shí)候?qū)嵗烁割悓ο螅缦拢?/p>

public static void main(String[] args) {
        Plant tree=new Plant();
        tree.trait();
    }

如果父類是普通類的話,此時(shí)編譯器不會(huì)報(bào)錯(cuò),直接調(diào)用父類的方法

如果父類是抽象類,因?yàn)槌橄箢悷o法被實(shí)例化,所以編譯器會(huì)直接報(bào)錯(cuò),這樣問題就能更早被發(fā)現(xiàn)

2.接口

2.1接口概念

所謂接口就是公共的行為規(guī)范準(zhǔn)則,比如說A4紙,A4紙的大小是210mm*297mm,那么你就只能按照這個(gè)規(guī)格來進(jìn)行生產(chǎn)

在Java中接口就可以看成是多個(gè)類的公共規(guī)范,是一種引用類型數(shù)據(jù)

接口關(guān)鍵字:interface

2.2接口的細(xì)節(jié)

接口同樣有一些需要注意的事項(xiàng):

1.接口也是用來被其它類實(shí)現(xiàn)的,同樣不能實(shí)例化

2.接口里面的方法只能是抽象方法,默認(rèn)是public static修飾

3.接口的成員變量默認(rèn)是靜態(tài)常量,所以必須初始化

4.接口被實(shí)現(xiàn)所使用的關(guān)鍵字為implements,類實(shí)現(xiàn)接口依舊要重寫接口中所有的抽象方法

5.接口不能有構(gòu)造方法和靜態(tài)代碼塊

6.接口繼承接口使用extends

7.創(chuàng)建接口時(shí),接口的命名一般以大寫的字母“I”開頭(建議,非硬性要求)

8.接口也可以實(shí)現(xiàn)多態(tài)

接口在Java中最主要的作用就是實(shí)現(xiàn)多繼承

Java中一個(gè)類只能繼承一個(gè)父類,但它可以實(shí)現(xiàn)多個(gè)接口

抽象類和接口有相似的地方,不過二者之間最本質(zhì)的區(qū)別就是抽象類可以有普通成員方法和普通成員變量,而接口中的方法只能是抽象方法

抽象類和接口介紹完畢,下一篇會(huì)介紹Java中一些比較重要的接口

以上就是關(guān)于“Java抽象類與接口實(shí)例分析”這篇文章的內(nèi)容,相信大家都有了一定的了解,希望小編分享的內(nèi)容對大家有幫助,若想了解更多相關(guān)的知識(shí)內(nèi)容,請關(guān)注億速云行業(yè)資訊頻道。

向AI問一下細(xì)節(jié)

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

AI