인프런 커뮤니티 질문&답변

counterchord89님의 프로필 이미지
counterchord89

작성한 질문수

스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술

HttpServletRequest - 기본 사용법

service 메소드를 public으로 가져오면 안되는 이유가 있나요?

해결된 질문

작성

·

376

2

안녕하세요 영한님!

다름이 아니라 service 메소드를 override할 때 protected로 되어있는 코드를 만들어야 한다고 해주셨는데 그 이유가 뭔지 설명 해주시면 감사하겠습니다. 

protected로 접근 제어자를 지정하면 같은 패키지 이거나 다른 패키지라도 상속관계라면 해당 메소드에 접근이 가능할텐데 혹여 public으로 지정했을때 다른 패키지에 존재하는 클래스에서 해당 메소드를 override 할 수 있는 가능성을 없애기 위해서 인가요?

감사합니다.

답변 1

7

김영한님의 프로필 이미지
김영한
지식공유자

안녕하세요. counterchord89님

여기에는 특별한 이유가 있는 것은 아닙니다.

HttpServlet이 제공하는 service 메소드는 public도 있고, protected도 있는데요.

public serivce 쉽게 이야기해서 톰켓 서버가 호출하고, 필요한 추가 업무를 약간 처리한 다음에 protected로 정의된 serivce를 호출합니다.

우리는 이 protected를 오버라이드 해서 사용하도록 HttpServlet에 정의되어 있습니다.

감사합니다.

그런 이유였군요! 감사합니다!

counterchord89님의 프로필 이미지
counterchord89

작성한 질문수

질문하기