错误:不是抽象的,并且不会覆盖java.util.Comparator中的抽象方法compare()

时间:2018-02-18 19:16:19

标签: java compare abstract-class comparator

首先,我想提一下,我承认有关此错误的相同标题的问题,但我无法使用现有答案解决我的问题。

我的程序很简单。该计划可以按名称或学生的登记日期对学生进行排序。

造成问题的行是"公共类学生实施比较器。" 它给出了Error" Student1.Student不是抽象的,并且不会覆盖java.util.Comparator中的抽象方法比较(Student1.Student,Student1.Student)"

package Student1;

import java.util.Date;
import java.util.*;
import java.util.ArrayList;

public class Student implements Comparator<Student> {
String name;
Date whenEnrolled;

Student(String name, Date whenEnrolled){
    this.name = name;
    this.whenEnrolled = whenEnrolled;
}

/**
 * get a student's name
 * @return name of a student
 */
public String getName(){
    return name;
}

/**
 * get a enrolled date of a student
 * @return enrolled date of a student
 */
public Date getEnrolledDate(){
    return (Date)whenEnrolled.clone();
}
/**
 * 
 * @return 
 */
public static Comparator<Student> getCompByName(){
    return new Comparator<Student>(){
         @Override
         public int compare(Student std1, Student std2)
         {return std1.getName().compareTo(std2.getName());}
    };
}
/**
 * 
 * @return 
 */
public static Comparator<Student> getCompByDate(){
    return new Comparator<Student>(){
        @Override
        public int compare(Student std1, Student std2)
        {return std1.getEnrolledDate().compareTo(std2.getEnrolledDate());}
    };
}
public static void main(String args[]){

    Student std1 = new Student("Alice",new Date(1999,1,1));
    Student std2 = new Student("Alex",new Date(1998,2,1));
    Student std3 = new Student("John",new Date(1999,1,3));
    Student std4 = new Student("Brenna",new Date(1999,2,1));

    List<Student> _students = new ArrayList<Student>();
    _students.add(std1);
    _students.add(std2);
    _students.add(std3);
    _students.add(std4);


    Collections.sort(_students, getCompByName());
    for(Student s: _students){
        System.out.println(s.getName() + " " + s.getEnrolledDate());
    }

}
}

0 个答案:

没有答案