【发布时间】:2018-11-16 09:15:13
【问题描述】:
我有 3 节课。联系人、EmailContact 和 PhoneContact。我想创建一个 Arraylist,它可以包含来自 EmailContact 和 PhoneContact 的对象。我需要找到一种方法来获取这些对象。这是我到目前为止所拥有的,但它似乎并没有像我想要的那样将它们分开。
public void addEmailContact(String date, String email) {
ArrayList<Contact> con = new ArrayList<>();
con.add(new Contact(date, email));
}
public void addPhoneContact(String date, String phone) {
ArrayList<Contact> con = new ArrayList<>();
con.add(new Contact(date, phone));
}
【问题讨论】:
-
如果它们之间有
is-a关系,你可以这样做 -
如果
EmailContact和PhoneContact扩展Contact您可以将它们添加到ArrayList<Contact>列表中 -
con.add(new EmailContact(date, email));而是
-
@TrungNTNguyen 谢谢你。
-
你想对数组内容做什么?因为在检索对象时会很尴尬,因为您不会真正知道它是 EmailContact 还是 PhoneContact,而且更多因此您将无法分别使用
getEmail和getPhone方法,只有当您将检索到的联系人显式转换为他们预期的班级,这通常会引发ClassCastException