Q. final에 대해서 설명해보세요.
final은 총 3개의 자리에서 쓸 수 있다.
사용되는 위치에 따라서 역할이 조금씩 다르다.
- 변수(상수화)
변수에 final을 붙이면 초기화 이후에 값을 변경할 수 없다.
- 본 타입 변수: 저장된 값을 변경할 수 없다.
- 참조 타입 변수 (객체): 해당 변수가 가리키는 객체 주소를 바꿀 수 없음을 의미. (객체 내부의 필드 값은 변경 가능!)
- 메서드 (재정의 금지)
메서드에 final이 붙으면 해당 메서드는 하위 클래스에서 오버라이딩(Overriding)할 수 없다.
- 부모 클래스에서 정의한 로직을 자식 클래스가 마음대로 바꾸지 못하게 보호해야 할 때 사용.
- 클래스(상속 금지)
클래스에 final이 붙으면 해당 클래스는 다른 클래스의 부모가 될 수 없다. 즉, 상속이 불가능.
- 보안이나 효율성을 위해 클래스의 설계를 그대로 유지해야 할 때 사용.
- 대표적인 예: 자바의 String 클래스는 final로 선언되어 있어 상속받아 기능을 수정할 수 없다.
'Java' 카테고리의 다른 글
| [Java] 리플렉션(Reflection) (0) | 2026.01.13 |
|---|---|
| [Java] 인터페이스와 추상클래스 (0) | 2026.01.10 |
| [Java] 객체지향 - final 2 (0) | 2026.01.09 |
| [Java] JVM 2 (0) | 2026.01.07 |
| [Java] JVM에 대하여 (0) | 2026.01.05 |