클래스 Parent
과 클래스 Child
( 하위 서브 클래스 Parent
)을 가지고 있습니다.다른 이름의 메소드로 Ruby 상위 클래스 확장하기
Parent
은aaaa
이라고하는 방법이있다.Child
에는bbbb
이라는 메서드가 있습니다.- 내가
aaaa
의 확장으로bbbb
원하는 :
이 내가 달성하고자하는 것입니다.
Child
개체에서aaaa
을 호출하면aaaa
이 정상적으로 수행되고, 그 외의 경우는bbbb
이 실행됩니다.- 내가
bbbb
을 호출하면 정상적으로 수행 할 작업 (aaaa
실행 후bbbb
에있는 작업)을 수행합니다.
이것은 내가하고 결국 무엇을 :
class Parent
def aaaa
print "A"
end
end
class Child < Parent
alias_method :original_aaaa,:aaaa
def bbbb
original_aaaa
print "B"
end
alias_method :aaaa,:bbbb
end
c = Child.new
c.aaaa # => AB
c.bbbb # => AB
작동 그것. 그렇 겠지. 그러나 그것은 정말로 hackish하게 느꼈다. 게다가 이것의 단점은 bbbb
을 정의하기 전이나 후에 동일한 이름을 가진 aaaa
을 확장하고 싶다면 다소 이상해집니다.
더 간단한 방법이 있나요?
질문은 ... 왜 * *! – Pete
나는 이것을하는 이유를 볼 수 있었다. 이 질문을 처리하는 방법에 대한 의견이 있습니다. http://stackoverflow.com/questions/2564391/how-do-i-call-a-super-class-method – timpone
"자녀"란 무엇을 의미합니까? 서브 클래스를 의미합니까? – sawa