- ベストアンサー
インターフェイス実装クラスの表示について
- インタフェースPlanetを実装したクラスEarth、Marsがあります。以下の実行結果になるようにクラスAggregateへshowメソッドを追加してください。
- showメソッド内でEarthクラスとMarsクラスのインスタンスを受け取り、星の名前と概要を表示する処理を追加してください。
- 参考になりそうなサンプルコードを記載します。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
interface の意味がわかっていますか? ってわかっていないからこういうコードになっているのだと思いますが。もう少し勉強してください。教科書とかあるのでしょうから、教科書のinterfaceの説明を2分でいいから読んでください。 interfaceを使うメリットは実装クラスを意識しなくてよくなることです。ですので、インスタンス化するとき以外はできるだけ実装クラスを使うべきではないと思います。 Planet.java, Earth.java, Mars.javaはそのままでいいです。 あとはこんな感じ。 // [Main.java] class Main{ public static void main(String[] args){ // Earth&Marsクラスのインスタンス化 Planet earth = new Earth(); Planet mars = new Mars(); // Aggregateクラスのインスタンス化 Aggregate aggregation = new Aggregate(); // showメソッド呼び出し:戻り値無し、引数earth・mars aggregation.show(earth); aggregation.show(mars); } } // [Aggregate.java] class Aggregate { public void show(Planet planet){ String str = planet.getName(); System.out.println(str); } } こういうことです。試してないけどたぶん動くと思います。