C++의 10 년에서 Ruby 로의 전환을 위해 가장 단순한 작업을 수행하는 방법을 추측했습니다. 아래의 고전적인 형태 파생 예제를 감안할 때 이것이 "루비 웨이"인지 궁금합니다. 아래 코드에 본래 아무런 문제가 없다고 생각하지만 Ruby의 모든 기능을 활용하지 못하고 있다고 느낍니다.모양 상속 예제 및 "The Ruby way"
class Shape
def initialize
end
end
class TwoD < Shape
def initialize
super()
end
def area
return 0.0
end
end
class Square < TwoD
def initialize(side)
super()
@side = side
end
def area
return @side * @side
end
end
def shapeArea(twod)
puts twod.area
end
square = Square.new(2)
shapeArea(square) # => 4
"루비 웨이"가 구현 되었습니까? 그렇지 않은 경우 어떻게 구현 했습니까?
나는 이런 것들을 싫어. 우선'def area ... '를 입력하지 마십시오. 이미 메소드 없음 오류가 발생합니다. 코멘트를 추가하면 서브 클래스가 제대로 구현할 수 있도록 '영역'이 수행해야하는 작업을 설명해야합니다. –