关于java:OOP接口继承

OOP interface inheritance

我的问题是,一个接口可以扩展另一个接口,或者实现另一个接口。

1
2
3
4
5
6
7
8
9
10
interface A {
}

interface B extends A {
}

OR

interface B implements A {
}


是的,接口可以扩展Java中的另一个接口。

1
2
3
4
5
6
// this interface extends from the Body interface:
public interface FourLegs extends Body
{
  public void walkWithFourLegs( );

}

但是我们必须想,

When would we want an interface to extend another interface

我们知道任何实现接口的类都必须实现该接口中声明的方法标题。而且,如果该接口从其他接口扩展,那么实现类还必须实现被扩展或派生的接口中的方法。

所以,在上面的例子中,如果我们有一个实现四条腿接口的类,那么这个类必须对四条腿接口和主体接口中的任何方法标题都有定义。

Question part 2:Interface do not Implement another interface,Because

implements表示定义接口方法的实现。但是,接口没有实现,所以这是不可能的。


是的,它们可以通过extends关键字,因为接口不能实现任何方法,只能声明它们的签名。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
interface A {
    public void foo();
}

interface B extends A {
    // You don't implement the methods from A here
    public void bar();
}

class C implements B {
    public void foo(){
    }
    public void bar(){
    }
}

然后实现B的任何类也必须实现来自A的方法。


一个接口只能扩展另一个接口,因为一个接口不能包含任何实现。

1
2
3
4
5
6
7
interface ParentInterface{
    void myMethod();
}

interface SubInterface extends ParentInterface{
    void anotherMethod();
}

除非Java 8扩展,否则EDCOX1 0不实现任何东西。

因此,extends是正确的术语。


在继承方面,在"接口"的情况下,它们总是扩展,从不实现任何东西。