java - 接口中常见默认方法的菱形问题
问题描述
我试图理解为什么下面的程序无法编译。两种默认方法的返回类型在两个接口中都不同。是否应该将它们视为接口 c 中的两种不同方法?
interface a{
default void log(String str){
System.out.println("I1 logging::"+str);
}
}
interface b {
default int log(String str){
System.out.println("I1 logging::"+str);
return 0;
}
}
interface c extends a,b{
}
HelloWorld.java:32:错误:类型 b 和 a 不兼容;都定义了 log(java.lang.String),但返回类型不相关接口 c 扩展 a,b{ }
解决方案
推荐阅读
- postgresql - pg_rewind 无法同步第二个数据库
- php - 如何在 php 中使用带有 Object 的 json 编码
- reactjs - reactJS中使用react-router-dom认证的路由
- haskell - 使用 Haskell 程序查找列表中位数的问题
- tensorflow - 如何使用 pip 安装 tensorflow 版本 1.12.0
- python - 在python中创建一个正则表达式匹配所有hls url
- amazon-web-services - 适用于媒体(视频)流媒体的 AWS 服务
- java - JSON 到多行 Java 字符串转换器
- awk - 了解 OFS 在 AWK 中的工作原理
- php - How to pass variables in url using codeigniter?