기본적으로 나는 내가 원하는 것을 기반으로 이것을 올바르게 수행하는 것이 가장 좋습니다.가상 함수로 추상 함수를 대체 하시겠습니까?
Fire()와 같은 메소드가 포함되어 있기 때문에 abstract 클래스 인 무기 클래스가 있습니다 (레이저 대 총알).
그러나 일단 무기 클래스에서 상속받은 실제 탄도 무기 클래스에 도달합니다.
대부분이 똑같은 발사를합니다. 그들은 발사체를 스폰하고 탄약 수를 낮추고 재 장전 타이머가 0이 될 때까지 기다렸다가 다시 발사 할 수 있습니다.
탱크 총이거나 권총 또는 포탑 또는 포병 이건간에 변경 사항 이상으로 유지됩니다. 가상 클래스처럼 보인다
는 (어뢰 발사기, 그것은 수정 될 필요가 제기하고 그래서 추상적/비 가상 수없는 화재 해치 도어를 낮추기 위해 특별한 구현을해야 할 수도 있습니다)
그러나 기본적으로 내가 갖고 싶어
추상적 인 무기 급 화재() 메소드
가상 탄도 무기는 상속 무기 화재() 메소드
하지만 추상 메소드를 오버라이드 (override) 할 수 있다는 것 나던 그것은 그것 가상 하나. 내가
이
을 weapon.fire 할 수 있도록하고 싶습니다하고 ballstic 무기로 가서하지 않는 한,이 구현을 사용하기 때문에나는 비록 완전히 새로운 방법을 원하는 생각하지 않는다 특정 탄도 무기가 일반적인 방법보다 우선합니다.
후 관련 코드는, 그것을 설명하지 않습니다. –
@EvanTrimboli Best comment 이번 주에 보았습니다. –
나는 당신이 뭔가를 오해하고 있다고 생각합니다. 추상 메소드는 가상 메소드입니다. 오버라이드 메소드는 가상 메소드입니다. 추상적 인 메소드를 오버라이드 (override)하면 여전히 가상입니다. 어떻게 그럴 수 없습니까? –