繁体   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