java - 为什么我可以编译出错误的代码?

标签 java oop overriding

我们知道,如果我们重写equals,就必须重写hashCode。如果我只覆盖equals,它仍然可以编译。这更好吗?或者为什么编译器不发出警告或类似的警告?

最佳答案

编译器通常不会强制执行语义约束。

在这种特殊情况下,编译器将无法提供可靠警告 - 如果您知道基类hashCode适用于派生类怎么办?或者如果您真的只需要等于

关于java - 为什么我可以编译出错误的代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41749700/

相关文章:

java - 无法解析 pom.xml 依赖项 - Eureka DiscoveryClient

java - 保留文件 IO 中的换行符和间距

c# - 如何使用接口(interface)作为方法参数但仍然访问非接口(interface)方法?

C# 覆盖抽象成员

Delphi子类化可视化组件并使用它

java - URLConnection(Proxy proxy) 忽略设置的代理

java - 在 Java 中使用 JavaMail 格式化电子邮件

php - 我的 PDO 提取列函数出错

php - 可能设计不佳;在PHP中的继承类中强制静态定义

c# - 如何让委托(delegate)引用方法的特定版本?