public class Person {private String name;public Person(String name){this.name = name;}public String getName() {return name;}public boolean equals(Object other) {Person person = (Person)other;System.out.println("执行复写方法");return this.name.equals(person.getName());}public boolean equals(Person other) {System.out.println("执行重载方法");return this.name.equals(other.getName());}}public class PersonTest {public static void main(String[] args) {Person p = new Person("李磊");Person other = new Person("陈尚");p.equals(other);}}程序运行时调用的是参数为Person的equals方法,当将参数为Person的equals方法注释后,会调用参数为Object的方法。为什么不是优先调用参数为Object的方法?既然两种参数的equals方法都能被调用,那么,为什么不会报错?程序应该不知道具体调用哪一个方法才对
添加回答
举报
0/150
提交
取消