![](/img/trans.png)
[英]Java 8 default implementation is not available when instance is passed as its superinterface
[英]superinterface in java
什么是超級接口是java? 超級界面的目的是什么?
這是一個例子:
public interface A {
void doSomething();
}
public interface B extends A {
void doSomethingElse();
}
在這個例子中, A
是B
的超接口 。 這就像是一個超類。 任何實現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給出的解釋)
(b)給定類X和接口C,當X實現C時,則C是X的直接超接口。
這里的第二種情況在任何先前的解釋中都不清楚。 也就是說,在情況(b)中,為了使用術語超接口,不需要分層的接口鏈。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.