首頁 > Java > java教程 > Java抽象類別與介面實例分析

Java抽象類別與介面實例分析

王林
發布: 2023-04-30 11:40:06
轉載
1399 人瀏覽過

1.抽象類別

1.1抽象類別概念

我們都知道物件是透過類別來進行描述的,但是不是說所有的類別都是用來描述物件的

一個類別的類別中沒有足夠的資訊來描述一個具體的對象,這便是抽象類別

抽象類別的關鍵字: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根本就沒有實現的必要,所以我們可以將其改為抽象方法

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

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抽象類別與介面實例分析

# 1.3抽象類別的細節

# 1.抽象類別是用來被繼承的,所以無法實例化,除這點外它和普通的類別沒有區別

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

3.一個普通類別繼承抽象類,要重寫抽象類別裡面所有的抽象方法

4.抽象類別可以繼承抽象類,此時不需要重寫抽象方法

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

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

可能會有人覺得奇怪:普通類別也可以當父類別被繼承,為什麼還要再弄一個抽象類別出來?

我們不妨假設一個場景:你在實例化對象的時候實例化了父類對象,如下:

public static void main(String[] args) {
        Plant tree=new Plant();
        tree.trait();
    }
登入後複製

如果父類是普通類的話,此時編譯器不會報錯,直接呼叫父類的方法

如果父類是抽象類,因為抽象類無法被實例化,所以編譯器會直接報錯,這樣問題就能更早被發現

#2 .介面

2.1介面概念

所謂介面就是公共的行為規範準則,比如說A4紙,A4紙的大小是210mm*297mm,那麼你就只能依照這個規格來進行生產

在Java中介面就可以看成是多個類別的公共規範,是一種引用類型資料

介面關鍵字:interface

2.2介面的細節

介面同樣有一些需要注意的事項:

1.介面也是用來被其它類別實作的,同樣不能實例化

2.介面裡面的方法只能是抽象方法,預設是public static修飾

3.介面的成員變數預設是靜態常數,所以必須初始化

4.介面被實作所使用的關鍵字為implements,類別實作介面依舊要重寫介面中所有的抽象方法

5.介面不能有建構方法和靜態程式碼區塊

6.介面繼承介面使用extends

7.建立介面時,介面的命名一般以大寫的字母「I」開頭(建議,非硬性需求)

#8.介面也可以實作多態

介面在Java中最主要的作用是實作多重繼承

Java中一個類別只能繼承一個父類,但它可以實作多個介面

抽象類別和介面有相似的地方,不過二者之間最本質的差異就是抽象類別可以有普通成員方法和普通成員變量,而介面中的方法只能是抽象方法

抽象類別和介面介紹完畢,下一篇會介紹Java中一些比較重要的接口

以上是Java抽象類別與介面實例分析的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:yisu.com
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板