如何使用扩展<java>实现推理

时间:2017-04-28 07:23:13

标签: java extends inference

我试图弄清楚如何进行简单的实现,我想,如果接口扩展到另一个接口怎么办? 例如,

public interface A{
    public void a();
}

public interface B{
    public void b();
}

public interface C extends B, A {
    public void c();
}

如果我要在另一个类上实现接口C,我该怎么办? 我通过阅读其他帖子尝试了这个:

public class Example<E extends B&A> implements C{
    public void c(){
    }
}

这似乎不对。

2 个答案:

答案 0 :(得分:1)

什么错......简单地实现所有接口?

public class Example implements C {
  @Override 
  public void a(){ }
  @Override 
  public void b(){ }
  @Override 
  public void c(){ }
}

换句话说:您认为首先将示例设为通用类型会产生什么影响?!

含义:如果有一个我没有看到的更深层次的问题 - 你应该考虑更新你的问题并解释你打算做什么(避免在这里解决xy problem)。如果没有更深层次的问题,请使用最简单的解决方案(如上所示)。

答案 1 :(得分:0)

如果您希望if "" EQU "3" goto section_3班级实施Example ...您需要做的只是说C。类型变量是完全独立的,与此无关:

implements C

但看着你的班级签名:

public class Example implements C { ... }

public class Example<E extends B&A> implements C 是一个类型变量,它允许您处理对实现EB(但不是A)的类的引用。

例如,如果C中有一个方法将Example作为参数:

E

然后你可以在它的身体中有以下内容:

void someMethod(E e)