2011-01-26 2 views
5

추상 클래스에서 추천되는 내용은 무엇입니까?추상 또는 가상 방법?

null을 반환하는 가상 메서드가 있습니까? 아니면 추상 메서드가 있습니까?

null을 반환하는 것이 편리하고 쉽습니다. 추상 클래스를 상속 할 필요가 없기 때문입니다. 그러나 목적, 오류 또는 디자인에 의한 것이라하더라도 null을 반환하는 것은 다소 어렵습니다.

이에 대한 명확한 권장 사항이 있습니까?

+2

물론 * 적절하게 문서화되지 않은 * 아무것도 * 이해하기 어렵습니다. –

답변

16

null을 반환하는 것이 기본 동작 (지원 설명서 포함)으로하는 것이 현명하고 정당한 경우라면 virtual이 좋습니다. 마찬가지로 합리적인 기본값을 만들 수 있지만 확장 성을 제공하려는 경우 : virtual.

(콘크리트) 클래스 이 기본값이 아닌 구현없이에서 작동하지 않으면 abstract으로 지정하십시오. 여기 casebook 시나리오는 Stream입니다 : 정상적인 구현이 없다면 바이트는 어디서 오는 것입니까? (/로 이동).

2

필자가 파생 클래스에 기능을 제공하도록 요청하면 추상 메서드가 있고, 그렇게 신경 쓰지 않으면 null을 반환하는 가상 메서드 (또는 기본 동작을 수행하는 가상 메서드)가 있습니다.

관련 문제