The original error message did have a critical clue, that you omitted from your post:
Person is not abstract and does not override abstract method compareTo(java.lang.Object) in java.lang.Comparable
You stopped at "compareTo" and overlooked the method argument: Object. Your implementation was for compareTo(Person), not compareTo(Object). That's the clue that led to Punit's answer above. You either need to tell the compiler that a Person is comparable to other Person, not objects - or you have to write a compareTo that can handle any Object, not just a Person.