java中,实现接口comparable,并且重写抽象方法compareTo,我想实现的功能是如果年龄一样,则比较名字,这时又重新通过对象名调用compareto方法,此时compareto方法是我重写的方法吗
时间: 2023-10-29 18:05:43 浏览: 82
是的,如果你在实现Comparable接口时重写了compareTo方法,在使用对象名调用compareTo方法时,调用的就是你自己实现的compareTo方法。在你的情况下,如果两个对象的年龄相同,则会比较它们的名字。你可以在compareTo方法中编写这个逻辑。以下是一个例子:
```
public class Person implements Comparable<Person> {
private String name;
private int age;
public Person(String name, int age) {
this.name = name;
this.age = age;
}
@Override
public int compareTo(Person other) {
int ageCompare = Integer.compare(this.age, other.age);
if (ageCompare == 0) {
return this.name.compareTo(other.name);
}
return ageCompare;
}
}
```
在这个例子中,我们首先比较两个人的年龄,如果它们相同,我们再比较它们的名字。如果你创建了两个Person对象p1和p2,然后调用p1.compareTo(p2),那么会调用你自己实现的compareTo方法。
阅读全文