What are the rules regarding one interface (not class, but interface) inheriting from another?

Nothing in the documentation seems to refer to interface inheritance, only to class inheritance.

I have tried to do some code with this, and the compiler does not complain about one interface inhering from another, but it does give some strange results when the child interface tries to implement an abstract method in the parent interface.

What I am trying to do in structurally like this:

interface I1
{
    abstract x *A();
}

interface I2: I1
{
    final x *A() { ... }
    final int B() { return f(A()); }
}

interface I3: I1
{
    final int C() { return g(A()); }
}

class C1: I3
{
    final x *A() { ... }
}

class C2: I2
{
// should not need to define A() because that should be defined in I2
   // Not allowed to define A() because already defined in I2
}

Reply via email to