我有一個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