当前位置: 首页 > 面试题库 >

接口是否可以解决“致命的死亡钻石”问题?

雷逸仙
2023-03-14
问题内容

接口是否解决了 致命的致命 问题?

我不这么认为,例如:

// A class implementing two interfaces Interface1 and Interface2.
// Interface1 has int x=10 and Interface2 has int x = 20

public class MultipleInterface implements Interface1, Interface2{

    public void getX(){
        System.out.println(x);
    }
}

在这里,我们变得模棱两可x

尽管接口是解决方法歧义的好方法,但我猜它们在变量的情况下会失败吗?

我对么?如果我缺少什么,请启发我。


问题答案:

Java阻止了多个具体/抽象类的继承,但没有多个接口的继承。通过多接口继承,您可以继承抽象方法,而不是实现。请参阅这篇文章,并提供良好的解释和示例:https :
//web.archive.org/web/20120724032720/http : //www.tech-
knowledgy.com/interfaces-sovles-diamond-
death/




 类似资料:
  • 问题内容: 如果我在Thread对象上使用start()并且run()方法返回,是否可以再次调用start()? 例如, 我只是想知道是因为我的代码抛出了IllegalThreadStateExceptions,所以想知道是否是因为您不能执行上述操作。 问题答案: 不,你不能。该方法的Javadoc 告诉您!

  • 问题内容: 我有一个程序生成并与CPU繁重,不稳定的进程通信,而不是由我创建的。如果我的应用程序崩溃或被杀死,我也希望子进程也被杀死,因此用户不必跟踪它们并手动杀死它们。 我知道以前已经讨论过该主题,但是我已经尝试了所有描述的方法,但似乎没有一种方法能够经受住测试的考验。 我知道这是有可能的,因为终端一直在这样做。如果我在终端中运行某些程序并杀死该终端,则这些东西总是会死掉。 我试过了,双叉和。不

  • 我在试着测试15个谜题是否可以解决。我写了一个方法,它对大多数谜题都有效,但对一些谜题无效。 例如,这个难题可以用两个动作(0,11),(0,12)来解决 下面是更直观的谜题: 但是这个谜题有一个奇数奇偶校验3,所以应该是不可解的。 我做错了什么?

  • 我想拆分我的验证器的声明和实现,与Spring boot环境中的这个问题非常相似。看起来好像是我让它几乎起作用了。我看到我的验证器实际上是由Spring验证调用的,但在执行验证后,Hibernate会抛出一个异常: 这是因为是一个接口(如预期)。 我已经这样配置了Spring(这是一个不同问题的答案): 我的自定义验证器: 所以它试图通过验证器名称找到一个Spring bean。所以我有一个验证器

  • 问题内容: JavaFX 现在已经面世,并且有望与JavaFX一起改进Swing。丑陋的默认UI的日子已经一去不复返了,最终我们可以创建在质量方面可以与 Flash,Air和Silverlight 相媲美的引人入胜的应用程序。 这是否意味着从1990年代开始失败的 Java Applet 已经死了,不值得回头? 与 Java Desktop 相同:什么将促使我们Java开发人员使用它而不是Java

  • 问题内容: 我正在一个项目中,该项目有很多由库创建的对象,并且无法访问这些对象的创建过程。 以下代码片段很好地说明了我的问题。 码: 是Clazz在编译时可能会或可能不会实现的接口。 码: 以下代码是我遇到的问题。请注意以下几点: 仅在c是的实例时调用。 并且都是我无法访问的类中的私有方法。 在编译时,将 不 包含名为的方法。 ExampleExecutor 不是 我的课程。我无法以任何方式访问它