如果我们需要实现两个接口,这两个接口都包含一个具有相同名称和参数但返回类型不同的方法,我们该怎么办?例如:
interface A {
public int foo();
}
interface B {
public double foo();
}
class C implements A, B {
public int foo() {...} // compilation error
}
有没有简单的方法可以解决此问题?
最简单的解决方案是始终返回double
A,因为它可以存储所有可能的int
值。
如果您不是一个选择,则需要使用继承的替代方法。
class C {
public A getA();
public B getB();
}
C c = new C();
int a = c.getA().foo();
double b = c.getB().foo();
问题内容: 如果我有两个接口,它们的用途完全不同,但是具有相同的方法签名,那么我如何使一个类同时实现两个接口,而又不被迫编写一个同时为两个接口服务的方法并在该方法中编写一些复杂的逻辑是否实现检查调用的对象类型并调用适当代码的实现? 在C#中,这可以通过所谓的显式接口实现来克服。Java中有什么等效方法吗? 问题答案: 不,没有办法在Java的一个类中以两种不同的方式实现相同的方法。 这可能导致许多
问题内容: 考虑下面的类层次结构。 运行该程序将出现以下错误: 这是因为我将ClassA.hello标记为私有。 如果我将ClassA.hello标记为受保护或删除了可见性修饰符(即使其成为默认作用域),那么它将显示编译器错误为: 但是,按照上面的异常stacktrace, 我得到一个运行时IllegalAccessError。 我不明白为什么在编译时没有检测到这个。有什么线索吗? 问题答案: 更
问题内容: Java 使用方法在中插入K / V对。可以说我使用过method,现在有一个条目,其值为10和17。 如果我在其中插入10,20,由于键10相同而发生冲突,它会简单地用该条目替换之前的条目。 如果钥匙碰撞,则用新的K / V对替换旧的K / V对。 所以我的问题是何时使用Chaining冲突解决技术? 为什么它没有形成键值为10且值为17,20的a? 问题答案: 当您插入线对然后时,
Java使用方法在中插入K/V对。假设我使用了方法,现在
本文向大家介绍解决Kotlin 类在实现多个接口,覆写多个接口中相同方法冲突的问题,包括了解决Kotlin 类在实现多个接口,覆写多个接口中相同方法冲突的问题的使用技巧和注意事项,需要的朋友参考一下 一、首先来看一个例子 二、解决冲突的例子 补充知识:Kotlin 如何优雅的实现『多继承』 这一期给大家讲一个有意思的东西。我们都知道 Java 当年高调的调戏 C++ 的时候,除了最爱说的内存自动回
本文向大家介绍解决Nginx端口冲突的排查方法示例,包括了解决Nginx端口冲突的排查方法示例的使用技巧和注意事项,需要的朋友参考一下 问题描述 一个Spring + Angular前后端分离的项目,使用Nginx进行数据转发。 Nginx监听端口8100,前台端口4200,后台端口8080。 像往常一样,提前配置好MySQL、配置好Redis,引入项目的Nginx配置文件,然后启动前台、后台,成