0

我目前正在使用一个抽象类,我正在通过另一个名为 People 的类进行扩展

public abstract class MediaContainer<T> {
    abstract T DisplayName(T dispname);
}

但是当我尝试在第二次覆盖它时出现错误

public class People<T> extends MediaContainer<T> {
    @Override public T DisplayName(T person){
        return System.out.println(person);
    }
}
4

1 回答 1

6

我猜错误在这一行:

return System.out.println(Person);

println返回void,并且您的DisplayName方法需要返回TSystem.out如果该方法仅如其名称所示用于打印,只需将其更改为 return void

注意:请确保在您的问题中提供更多信息,以获得更好的帮助并避免投票。对于编译错误,请始终包含错误消息和发生错误的确切行。

编辑:作为旁注,仅基于类的名称,您似乎应该为您的People类使用有界类型参数:

public class People<T extends Person> extends MediaContainer<T> { ... }

甚至解析类型参数:

public class People extends MediaContainer<Person> { ... }

这将允许People's 的方法与其包含的对象作为Person实例、调用Person方法等进行交互。这是假设Person当然有一个相应的类。

于 2013-01-13T18:31:30.937 回答