좁은 접근 범위로의 메서드 오버라이딩.
만약 자바에서 좁은 접근 범위로의 메서드 오버라이딩을 허용한다면 어떤 문제가 발생할 수 있을까요?
클래스에서 일반 메서드를 선언하는 의도야 자기 맘이니 어쩔 수 없다고 해도, 인터페이스의 메서드의 같은 경우에는 문제가 발생할 수 있다.
인터페이스의 메서드는 기본적으로 public 권한을 갖는다. 즉 이를 구현한 클래스에 접근해 해당 메서드를 호출할 수 있다는 가정을 깔고 있는 것이다. 만약 이를 protected 나 private 권한으로 바꿔 버린다면, 인터페이스가 가지고 있던 약속을 어겨 버리는 것이 된다.
컴파일은 어찌 어찌 된다고 하더라도, 런타임에 제대로된 동작을 할 수 없을 것이다.
'Programming > 뇌를 자극하는 Java 프로그래밍' 카테고리의 다른 글
[ 뇌를 자극하는 Java 프로그래밍 ] 9장, Excercise 9-3 (0) | 2013.04.21 |
---|---|
[ 뇌를 자극하는 Java 프로그래밍 ] 9장, Vitamin Quiz, String 개체의 내용이 변경 가능하다면? (0) | 2013.04.21 |
[ 뇌를 자극하는 Java 프로그래밍 ] 9장, Excercise 9-2 (0) | 2013.04.21 |
[ 뇌를 자극하는 Java 프로그래밍 ] 9장, Excercise 9-1 (0) | 2013.04.21 |
[ 뇌를 자극하는 Java 프로그래밍 ] 8장, 이것만은 알고 갑시다 (0) | 2013.04.16 |
[ 뇌를 자극하는 Java 프로그래밍 ] 8장, Excercise 8-1 (0) | 2013.04.16 |
[ 뇌를 자극하는 Java 프로그래밍 ] 7장, 이것만은 알고 갑시다 (2) | 2013.04.15 |
[ 뇌를 자극하는 Java 프로그래밍 ] 7장, Excercise 7-3 (0) | 2013.04.15 |
[ 뇌를 자극하는 Java 프로그래밍 ] 7장, Excercise 7-2 (0) | 2013.04.15 |
[ 뇌를 자극하는 Java 프로그래밍 ] 7장, Excercise 7-1 (0) | 2013.04.14 |