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

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

雷逸仙
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

  • 任何关于直接远程访问(不使用ssh->kubectl代理来避免在Kubernetes节点上进行用户管理)的详细实用指南都将不胜感激。:) 更新: 只是想说清楚点。这是在前提部署中的裸机(没有GCE、AWZ、Azure或任何其他),而且有些环境将完全脱机(这将增加获得安装包的额外问题)。 因此,当我在Kubernetes上设置入口时,我无法创建将443重定向到6443的防火墙规则。似乎唯一的选择是创