그래서 여기에 더 자바 변호사의 접근 방식은 (내 생각) ... 내가 다시 CLI '인간의 이동에 얻을 것으로 기대하고 있습니다루비
class Human
def move
p 'Human move: X'
end
end
class Computer
def move
p'Computer move: O'
end
end
class Player
def initialize(letter)
if letter == 'X'
return Human.new
else
return Computer.new
end
end
end
bob = Player.new('X')
bob.move
루비에서이 코드를 가지고있다 : X ' 나는 다음과 같은 ...
undefined method `move' for #<Player:0x007f8d930895a8> (NoMethodError)
아무도 도와 드릴까요이 루비 멍청한 놈의 오류를 받고 있어요?
------------------------- 토론 -------------------- ----
이제는 상속과 오버라이드를 사용하는 '고전적인'루비 패션에 대해 더 자세히 살펴 보았습니다. 자, 내 생각에 서브 프로세서에 아무런 의미가 없습니다. 나는이 방법으로하면 ... 다른 클래스 파일에 클래스 파일을 요구하고 새로운 객체를 인스턴스화 할 수 있습니다. 당신이 다시 Player
개체를 얻을 것이다, 그래서 그것은 .... 당신은 Player.new
전화하는거야
class Player
def move
return ""
end
end
class Human < Player
def move
return 'Human move: X'
end
end
class Computer < Player
def move
return'Computer move: O'
end
end
players = [Human.new, Computer.new]
players.each {|player|
print player.move
}
'Player.new'를 재정의 할 수 없습니까? 나는 그 일을 한 번 믿지 만, 나는 돌아가서 그것을 찾아야 할 것입니다. –
@phoffer : 그래, 나는 그가 할 수 있다고 생각하지만,해서는 안된다. –
예, 가능합니다. 저는 혼자서 그것을했습니다. 너와 같지만'self.get_player'를'self.new'로 바꾸고 마지막 줄에서 두번째 줄로 바꾼다. 왜 그것이 나쁜 습관이라고 설명해 주시겠습니까? –