부모와 자식클래스 가상 함수의 반환타입을 다르게 재정의 할 수 있을까? (Overriding, Return Value)
가상 함수 코드를 보다가, 우연히 부모클래스의 가상 함수와 자식클래스의 가상 함수의 리턴 타입이 다르다는 것을 본 적이 있습니다. 혹시, 부모 클래스에서 상속 받은 가상 함수의 리턴 값이 달라도 상관 없다는 것을 아시나요? 물론, 이 포스팅을 검색해서 들어오셨다면, 그 사실을 모르셨거나, 정확한 이유가 궁금해서겠죠. 먼저, 답부터 말하면 가능합니다. 그런데, 일반적으로 오버라이딩을 공부하신 분이라면 반환 타입이 같아야 한다는 것은 모두 아는 사실인데, 그럼 불가능한 것이 아닌가라고 생각하실 수 있습니다. 그래서 열심히 구글링해본 결과, 부모 클래스의 함수 타입에 대해서 상속받은 클래스의 함수가 대체가능하다면 반환타입이 달라도 된다고 합니다. 말로만 설명하면 이해하기 어려우므로, 바로 간단한 예제로 설명하..
2019. 6. 27.