为了使解释更容易,我将快速概述该程序。我应该创建一个“在线书店”。我有抽象类 Item 和 2 个子类,服装和教科书。总的来说,用户将首先在商店中“装满”教科书或服装,然后“出售”商品,因为它们有库存。
主要是我创建了一个 Item(抽象)数组,它将保存 Textbook 和 Apparel 类型的对象,就像“商店”一样。我的问题出现在尝试访问数组时。
例如,当“销售”商品时,用户输入他们想要购买的书名。我必须验证该标题是否“有货”(即在 Item 数组中)
这是我购买这本书的方法(i 是商店中的商品数量,store 是抽象数组,正如你所见,它并不完整。我被 if 语句困住了)
public static void buyBook(Item[] store, int i)
{
TextBook book = new TextBook();
String title;
title = JOptionPane.showInputDialog("Book title: ");
for(int j = 0; j < i; j++)
{
if(store[j] instanceof TextBook)
{
if()
}
}
我的想法是将标题(用户的输入)与商店中的教科书类型的标题(抽象数组)进行比较 我知道这是错误的,但类似于:
store[j].getTitle().compareTo(title)
但是 store[j] 当然无法访问 getTitle (因为它在 TextBook 子类中)
现在我完全陷入困境了。一些指导将不胜感激。
最佳答案
沮丧是你的 friend 。 ((TextBook)store[j]).getTitle().compareTo(title)
另外,为什么不使用 for-each 呢? for (Item item : store) if (item instanceof TextBook) ...
关于java - 访问抽象数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10456559/