簡體   English   中英

java中的超級接口

[英]superinterface in java

什么是超級接口是java? 超級界面的目的是什么?

這是一個例子:

public interface A {
    void doSomething();
}

public interface B extends A {
    void doSomethingElse();
}

在這個例子中, AB超接口 這就像是一個超類。 任何實現B類現在也自動實現A ,並且必須提供doSomething()doSomethingElse()

如果你有

public interface Bar extends Foo

然后Foo將成為Bar的超級界面。 這聲明Bar所有實例也是Foo實例,並且可以這樣處理,因此您可以在任何需要傳遞Foo地方傳遞Bar實例等。

基本上,當接口從其他接口擴展時,它強制實現它的類在兩個接口中實現方法。

如果提供了extends子句,則聲明的接口會擴展其他每個命名接口,因此會繼承每個其他命名接口的成員類型,方法和常量。 這些其他命名接口是聲明的接口的直接超接口。 任何實現聲明的接口的類也被認為實現了該接口擴展的所有接口。

你也可以讓方法覆蓋:)

http://java.sun.com/docs/books/jls/second_edition/html/interfaces.doc.html

Java中的接口可以相互擴展,因此擴展接口支持父級提供的所有內容及其自身提供的內容。 例如,Set具有唯一的操作,但也支持Collection執行的所有操作。

您要擴展的接口被視為超級接口。 注意,接口可以擴展多個接口,因此具有多個超級接口。

當你有2個接口與一些相關(相同)的字段或方法。 你應該使用一個作為superInterface,第二個將擴展,你不應該復制它。 這是因為簡單明了,看看究竟發生了什么。

術語超級接口的用途略有不同,具體取決於(a)接口的上下文,以及(b)類,如下所述:

(a)給定接口A和B,當B擴展A時,A是B的超接口(Tom給出的解釋)

jls8,8.1.5

(b)給定類X和接口C,當X實現C時,則C是X的直接超接口。

jls8,9.1.3

這里的第二種情況在任何先前的解釋中都不清楚。 也就是說,在情況(b)中,為了使用術語超接口,不需要分層的接口鏈。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM