2016-03-26 8 views
0

スーパークラスがBuildingとなっているプログラムを作成していますが、このクラスには建物のアドレスである1つの変数があります。次に、私は2つのサブクラスを持っていますと呼ばれ、もう1つはRestaurantと呼ばれます。 私はこのようなこれらのクラスに定義:Javaでサブクラスを選択する方法

public class Apartment extends Building; 
public class Restaurant extends Building; 

は、今私は機能public void register(Building build); を持っていると私は唯一のスーパークラスを受信することにより、情報を格納するサブクラスを選択することができます方法を知りたいです。 例:

0.Apartment 
1.Restaurant 
Which building do you have? 

今、ユーザーの回答に応じて、私は

How many rooms, bathrooms, etc. 

マイスターターポイントは、ユーザiがApartmentサブクラスを使用する0に答えた場合、今私は、選択する必要がありBuildingクラスで聞いてきますそうでなければ、Restaurantサブクラスを使用します。 どうすればいいですか? これを行うより良い方法があるかどうか教えてください。 ありがとうございます。

+1

[factory pattern](https://en.wikipedia.org/wiki/Factory_method_pattern)のいくつかの種類はおそらく –

+1

です。実際に質問にコードを追加する必要があります。このような問題を解決するためによく使用される "パターン"の名前をお探しですか?ユーザー入力を解釈するためのスイッチやif文の記述方法を使用していますか?他に何か? – hyde

答えて

2

メソッドのオーバーロードを行うことができます。 サブクラスを引数として登録メソッドを作成します。これらの方法でサブクラス の具体的な作業を行い、次に 民間登録(ビルディング) の方法で共通の作業を行う。

関連する問題