Java

[Java] 객체지향

parangofsky 2026. 1. 8. 23:52

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