关于Java程序——接口实现的疑问?

来源:百度知道 编辑:UC知道 时间:2024/06/15 13:29:14
内置的排序, 准备方法java.lang.Comparable接口来实现。
但是编译出错,不解?

import java.util.*;

class Name implements Comparable
{
public String firstName, lastName;
public Name(String firstName, String lastName)
{
this.firstName=firstName;
this.lastName=lastName;
}
public int compareTo(Name o)
{
int lastCmp=lastName.compareTo(o.lastName);
return(lastCmp!=0? lastCmp : firstName.compareTo(o.firstName));
}
public String toString()
{return (firstName+" "+lastName);}
}

public class NameSort
{
public static void main(String[] args)
{
Name namArray[]=new Name[3];
nameArray[0]=new Name("John","Lennon");
nameArray[1]=new Name("Oscar","Mart");
nameArray[2]=new Name("Kart","Marx");

Arrays.sort(nameArray);
for(int i=0; i&l

首先 compareTo方法
public int compareTo(Object o)
Name n = (Name) o;
int lastCmp=lastName.compareTo(n.lastName);
return(lastCmp!=0? lastCmp : firstName.compareTo(n.firstName));

然后
Name namArray[]=new Name[3];
注意变量名(上面声明是namArray下面用的时候是nameArray)
nameArray[0]=new Name("John","Lennon");
nameArray[1]=new Name("Oscar","Mart");
nameArray[2]=new Name("Kart","Marx");

有个接口方法没实现,在Name类里加上这个方法

public int compareTo(Object o) {
// TODO Auto-generated method stub
return 0;
}

当然有看到你实现了类似的方法,但参数不对呢!它的参数是Object而你是它的子类Name

实现接口就必须要实现接口中所有未实现的方法

package java.lang;
import java.util.*;
public interface Comparable<T> {

public int compareTo(T o);
}
//上面是 接口代码.
应该明白错在哪儿了 吧. 他用了泛型!
所以你程序 class Name implements Comparable{
}
要改成
class Name implement