[Java] final 키워드
2020. 4. 18. 20:29ㆍProgramming Languages/Java
final
자바에서 final은 '변경할 수 없는' 의미를 가지는 키워드이다. final은 3군데에 적용할 수 있다.
- 클래스
- 메서드
- 필드
1. final class
클래스 이름 앞에 사용된 final은 클래스를 상속받을 수 없음을 선언한다.
final class FinalClass { // 이 클래스 상속 불가
// ...
}
class SubClass extends FinalClass { // 컴파일 오류 발생.
// ...
}
2. final method
메소드 이름 앞에 사용된 final은 해당 메서드가 오버라이딩할 수 없음을 선언한다.
자식 클래스가 부모 클래스의 특정 메소드를 오버라이딩하지 못하게 하고 무조건 상속받아 사용하도록 하고자 할 때 사용한다.
public class SuperClass {
protected final int finalMethod() { ... } // 자식이 오버라이딩 불가
}
class SubClass extends SuperClass {
protected int finalMethod() {...} // 컴파일 오류.
}
3. final field
필드 이름 앞에 사용된 final은 해당 필드는 상수임을 선언한다. 상수는 값이 고정된 수라는 뜻이며 한 번 초기화되면 값을 변경할 수 없다.
class SharedClass {
public final double PI = 3.14; // 해당 필드는 수정 불가
public static void main(String[] args) {
PI = 3.15; // 컴파일 오류
}
}
'Programming Languages > Java' 카테고리의 다른 글
[Java] 상속과 접근 지정자 (0) | 2020.04.21 |
---|---|
[Java] 상속(extends) (0) | 2020.04.21 |
[Java] static 키워드 (0) | 2020.04.18 |
[Java] 접근 지정자 (0) | 2020.04.18 |
[Java] 객체의 소멸과 가비지 컬렉션 (0) | 2020.04.14 |