先看一个关于接口的测试代码: interface Test { public void test(); @Override public int hashCode(); @Override public String toString(); } class TestInterface implements Test { public void test() { } } public class Main { public static void main(String[] args) { Object obj = new Object(); Test test = new TestInterface(); System.out.println(test.toString()); System.out.println(test.hashCode()); System.out.println(test.equals(test)); } } 我故意保留了NetBeans IDE帮我生成的 @Override标记.这个地方看起来有些怪,按ide的提示,好像接口定义中的hashCode()方法和toString()方法重写了...