与继承 Java 不兼容的类型

Aer*_*rus 3 java inheritance

我正试图解决我遇到的这个继承问题。这是我目前的情况:

在此处输入图片说明

所以我有一个计划,可以是活动列表(类Activities)或要做的事情列表(类Todos)。
但是,如果我这样做Todos

private List<Todo> todos;

public List<Activity> getPlanning(){
    return todos;
}
Run Code Online (Sandbox Code Playgroud)

它说类型不兼容。

  • 为什么它们不兼容?

由于Todoextends from Activity,我们是否确定Todo至少提供与 相同的功能Activity

也许更重要的是:

  • 我如何调整我的设计以使其正常工作

(我不是 UML 专家,所以如果我的图表中有一些错误,请原谅我)

Aug*_*sto 5

欢迎来到 Java 中泛型的噩梦和糟糕的实现。尝试使用public List<? extends Activity> getPlanning().