実現したいこと
returnの数値をmain関数の中で出力したいです。
前提
javaでインタフェースについて学んでいます。参考書に、このようなサンプルコードが出てきたのですが、それぞれのクラスのGetAreaメソッドの戻り値である数値を、main関数で出力したいのですが、コードがわかりません。
インタフェースを実装した三つのクラスの中にある、getArea()は名前が共通しているため、出力する際に、どのように書けばよいのかわかりません。
それぞれの戻り値としている、1.0, 2.0, 3.0を出力する方法はありますか?
発生している問題・エラーメッセージ
該当のソースコード
java
ソースコード
interface HasGetAreaMethod { double getArea(); } abstract class Shape { abstract void draw(); } class Rectangle extends Shape implements HasGetAreaMethod { void draw() { System.out.println("□"); } public double getArea() { System.out.println("RectangleクラスのgetAreaメソッドが呼び出されました"); return 1.0; } } class Circle extends Shape implements HasGetAreaMethod { void draw() { System.out.println("〇"); } public double getArea() { System.out.println("CircleクラスのgetAreaメソッドが呼び出されました"); return 2.0; } } class Polygon extends Shape implements HasGetAreaMethod { void draw() { System.out.println("凸"); } public double getArea() { System.out.println("PolygonクラスのgetAreaメソッドが呼び出されました"); return 3.0; } } public class Polymorphism { public static void main(String[] args) { HasGetAreaMethod[] closedShape = new HasGetAreaMethod[3]; closedShape[0] = new Polygon(); closedShape[1] = new Rectangle(); closedShape[2] = new Circle(); for (int i = 0; i < 3; i++) { closedShape[i].getArea(); } } }
>インタフェースを実装した三つのクラスの中にある、getArea()は名前が共通しているため
インターフェースのメソッドなのですから逆に同じでなければエラーです。
復習が必要に思います。
>HasGetAreaMethod
こんな名前を付ける参考書は質が疑われます。
> 参考書に、このようなサンプルコードが出てきた
出典は質問に明示してください。
[Java 第3版 入門編 ゼロからはじめるプログラミング(三谷 純)|翔泳社の本](https://www.shoeisha.co.jp/book/detail/9784798167060)
> それぞれのクラスのGetAreaメソッドの戻り値である数値を、main関数で出力したい
1,2ページ前の「インタフェースの使用例」で、そのものズバリが書いてあると思うのですが...
[Java 第3版 入門編 ゼロからはじめるプログラミング - 三谷 純 - Google ブックス](https://books.google.co.jp/books?id=MboZEAAAQBAJ&pg=PT290&lpg=PT290&dq=closedShapes%5Bi%5D.getArea)

回答1件
あなたの回答
tips
プレビュー