我正在编写一个包含 4 个类(点、形状、矩形、圆)的程序。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
我收到一个错误“没有这样的方法 'x' 错误”,我知道这是因为 Shape 没有“x”方法(它在 Point 中)。我尝试了一些像 super.center.y.to_s 这样的长方法链接,但这有其自身的问题。这样做的正确方法是什么。即,良好的编程风格、面向对象的方式和 ruby 方式?