java - 访问抽象数组

标签 java arrays abstract

为了使解释更容易,我将快速概述该程序。我应该创建一个“在线书店”。我有抽象类 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/

相关文章:

java - 用于从 MySQL 数据库获取信息的 AsyncTask 与工作线程

java - 反转排序算法

xml - Cocoa:加载 XML 文件(数组);

javascript - 如何在 JavaScript 中创建抽象基类?

java - 基本java重构: Delegate the differences of child classes to parent and merge/remove them

java - 在 Android Studio 中制作抽认卡

java - 使用 mariadb 驱动程序时未找到 JDBC、Socket 工厂

php - 在 PHP 中制作正确的 foreach HTML?

python - 复杂的 numpy 数组乘法

抽象类中的 C++ 运算符重载