Java/주니어 자바 개발자를 위한 100가지 질문
[Java] 자바(Java)에서 final의 의미, 기능
saedong
2023. 5. 25. 10:33
클래스나 변수에 final을 붙이면 처음 정의된 상태가 변하지 않는것을 의미한다.
자바에서 변수들은 기본적으로 가변적인데, 변수에 final 키워드를 붙여 참조값을 변경 못하도록 해 불변성을 확보할 수 있다.
final 키워드가 사용되는 3가지 경우를 정리해보자면 다음과 같다.
final 변수
변수를 선언할 때 클래스 앞에 final을 붙이면 초기화 후 변경할 수 없다.
변경하려고 하면 컴파일 에러가 발생한다.
final int finalValue = 1;
finalValue = 2; // 에러
final 메소드
메소드에 final 키워드를 적용하면 오버라이딩, 즉 재정의가 불가능하다.
public class Method {
final void finalMethod() {
System.out.println("finalMethod 오버라이딩 불가능");
}
}
class SubMethod extends Method {
void finalMethod() { // 에러
System.out.println("finalMethod 오버라이딩 불가능");
}
}
final 클래스
클래스에 final 키워드를 적용하면 그 클래스는 상속 불가능한 클래스가 된다.
public final class FinalClass {
}
class SubClass extends FinalClass {
//final때문에 상속 불가능
// 에러
}