私は4つのクラス(Point、Shape、Rectangle、Circle)を持つプログラムを書いています。Rectangle と Circle は、形状の中心に関する情報 (フィールド) を含む Shape から継承します。次のように出力されるはずの Circle クラスの to_s メソッドを作成しようとしています。
サークル: [(1, 2), 3]
(1,2) が中心で、3 が半径です。これは私が to_s メソッドのために持っているものです:
def to_s
"Circle: [(" + super.x.to_s + ", " + super.y.to_s + "), " +
radius.to_s + "]"
end
「No such method 'x' error」というエラーが表示されますが、これは Shape に 'x' メソッドがない (Point にある) ためだと理解しています。super.center.y.to_s のような長いメソッド チェーンを試してみましたが、それ自体に問題があります。これを行う正しい方法は何ですか。つまり、良いプログラミング スタイル、オブジェクト指向の方法、および Ruby の方法ですか?