説明を簡単にするために、プログラムの概要を簡単に説明します。「オンライン書店」を作ることになっています。抽象クラス Item と 2 つのサブクラス Apparel と Textbooks があります。基本的に、ユーザーはまずストアに教科書かアパレルを「入れ」、在庫がある場合はそのアイテムを「販売」します。
主に、「ストア」のように機能する、Textbook と Apparel の両方のタイプのオブジェクトを保持する Item (abstract) の配列を作成しました。配列にアクセスしようとすると、私の問題が発生します。
アイテムを「販売」する場合、ユーザーは、たとえば、購入したい本のタイトルを入力します。このタイトルが「在庫あり」であることを検証する必要があります (つまり、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 にあるため)
そして今、私は完全に立ち往生しています。いくつかのガイダンスをいただければ幸いです。