多选题 Given:
2. class Noodle {
3. String name;
4. Noodle(String n) {name = n; }
5. }
6. class AsianNoodle extends Noodle {
7. public boolean equals(Object o) {
8. AsianNoodle n = (AsianNoodle)o;
9. if (name.equals(n.name)) return true;
10. return false;
11. }
12. public int hashCode() {return name.length(); }
13. AsianNoodle(String s) {super(s); }
14. }
15. public class Soba extends AsianNoodle {
16. public static void main(String[] args) {
17. Noodle n1 = new Noodle ("bob"); Noodle n2 = new Noodle ("bob");
18. AsianNoodle a1 = new AsianNoodle("fred");
19. AsianNoodle a2 = new AsianNoodle("fred");
20. Soba s1 = new Soba("ji11"); Soba s2 = new Soba("ji11");
21. System.out.print(n1.equals(n2) + " " + (n1 == n2) + " | "
22. System.out.print(a1.equals(a2) + " " + (a1 == a2) + " | "
23. System.out.println(s1.equals(s2) + " " + (s1 == s2));
24. }
25. Soba(String s) {super(s); }
26. }
What is the result?
【正确答案】 D
【答案解析】