私はデータとロジックを持つクラスフルーツを持っています。データのみの継承ですか?
今や、名前、ビットマップ、およびその他のデータだけが異なる多くの異なるフルーツが必要です。
果実ごとに新しいサブクラスを作成する意味はありますか?彼らはすべて果物との関係があります。しかし、彼らは新しい行動やフィールドを追加しません。
「タイプ」フィールドをサブクラス化するのではなく、「タイプ」フィールドに与えるほうが良いでしょうか?それに何か問題はありますか?
私はデータとロジックを持つクラスフルーツを持っています。データのみの継承ですか?
今や、名前、ビットマップ、およびその他のデータだけが異なる多くの異なるフルーツが必要です。
果実ごとに新しいサブクラスを作成する意味はありますか?彼らはすべて果物との関係があります。しかし、彼らは新しい行動やフィールドを追加しません。
「タイプ」フィールドをサブクラス化するのではなく、「タイプ」フィールドに与えるほうが良いでしょうか?それに何か問題はありますか?
どのような種類の果物を区別しようとしていますか?ちょうどタイピングの場合、基本クラス(この場合はfruit)で定義されたenumリストからenum値を使用し、継承するクラスのコンストラクタで渡されたり初期化されたりする傾向があります。私が正しく理解していれば
例えば
class Fruit
{
public:
enum Type { SPIKEY, RED, ROUND, SQUISHY };
Fruit(Type type)
{
mType = type;
}
protected:
Type mType;
};
あなただけの名前などのために
1つのクラスをコンストラクタで特定の値を定義することができますが、十分です。初期化時に、その名前が渡されることがあります。
public class Fruit{
String name;
...//bit map, etc
public Fruit(String name, ...){
this.name=name;
...//bit map
}
}
ユーザークラス:
Fruit apple = new Fruit("apple", ...);
これはkasavbereの答えのようなものの列挙値です。同じコメント。 – Ixx