我有2个Classes,Book和Journal,它们都扩展了Reference类。 我最初将它们存储到单独的ArrayLists中,但现在需要将它们全部存储到Reference ArrayList中。
我使用原始的2个arraylists来存储用户引用,然后当他们搜索它时,它将搜索两个数组以找到它。
我的问题是如何使用书籍和期刊课程中的功能?或者被覆盖的函数。
答案 0 :(得分:0)
在对align
进行迭代时,您可以查看它是List<Reference>
还是Book
,然后调用特定于Journal
和Book
的方法}:
Journal
如果您从for (Reference ref : list) {
if (ref instanceof Book) {
((Book) ref).bookMethod();
} else if (ref instanceof Journal) {
((Journal) ref).journalMethod();
}
}
调用可能会或可能不会覆盖的方法,则无需使用instanceof
或投放到Book/Journal
:
Reference
如果for (Reference ref : list) {
ref.doSomething();
}
和Book
都覆盖Journal
,那么它将执行doSomething()
具体实施,否则将使用Book/Journal
实施。