我有一个List<Task> tasksToDo
,它拥有许多不同的对象。其中一些不是Task
对象,而是TimingTask
对象,它是继承自Task
类的类。我的问题是,当我尝试使用遍历这个列表如下:循环遍历继承的类对象列表
for(Task theTask: tasksToDo)
{
}
我如何使用的方法是一个TimingTask
对象的内部,如果对象是那种类型的? TimingTask
对象类型具有名为getAdd
的方法,该方法仅存在于该类型中。因此,当我尝试使用theTask.getAdd
时,出现getAdd
方法在Task
类类型中不存在的错误。
一个可能的解决方案。如果你要正确对待'Task'对象,如'TimingTask'对象,此举'getAdd'成'Task'。 – Smutje 2015-03-08 20:24:53
我同意@Smutje。见http://en.wikipedia.org/wiki/Liskov_substitution_principle – Elist 2015-03-08 20:34:31