首頁 >Java >java教程 >java介面可以繼承嗎?

java介面可以繼承嗎?

青灯夜游
青灯夜游原創
2019-11-18 14:36:527605瀏覽

java介面可以繼承嗎?

java介面可以繼承嗎?

java介面可以繼承,而且是多繼承,但是只能是介面繼承接口,類別只能實作介面。一個接口可以繼承另一個或多個接口,一個普通類別可以實現多個接口。

介面是常數值和方法定義的集合。介面是一種特殊的抽象類別。

java類別是單繼承的。 classB Extends classA

java介面可以多繼承。 Interface3 Extends Interface0, Interface1, interface……

不允許類別多重繼承的主要原因是,如果A同時繼承B和C,而B和C同時有一個D方法,A如何決定該繼承那一個呢?

但介面不存在這樣的問題,介面全都是抽象方法繼承誰都無所謂,所以介面可以繼承多個介面。

注意:

1)一個類別如果實作了一個接口,則要實作該接口的所有方法。

2)方法的名字、回傳類型、參數必須與介面中完全一致。如果方法的回傳型別不是void,則方法體必須至少有一條return語句。

3)因為介面的方法預設是public類型的,所以在實作的時候一定要用public來修飾(否則預設為protected類型,縮小了方法的使用範圍)。

範例:

interface A{
    void a1();
}
 
interface B{
    void b1();
}
 
interface C extends A,B{//注意该语法只对接口的继承是合法的
    void c1();
}
 
class D implements C{
 
    @Override
    public void a1() {}
 
    @Override
    public void b1() {}
 
    @Override
    public void c1() {}
}

介面特性:

#1、介面是隱式抽象的,當宣告一個介面的時候,就不必使用abstract關鍵字。

2、介面中每一個方法也是隱式抽象的,宣告時同樣不需要abstract關鍵字。

3、介面中​​的方法都是公有的。

4、編譯時自動為介面裡定義的方法加入public abstract修飾符

#5、Java介面裡的成員變數只能是public static final共同修飾的,並且必須賦初值,可以不寫public static final,編譯的時候會自動加入。

以上是java介面可以繼承嗎?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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