final 키워드
- 한번 결정하면 바꿀 수 없다.
- 수정 가능한 경우의 수를 줄여 안정성을 높인다.
1. 변수 적용(지역 변수, 멤버 변수)
final int b = 10; // 선언과 초기화 함께 적는 걸 권장
//b = 20; //초기화 이후 수정 불가능
2. 메소드 적용
- 상속에서만 할 수 있음.
- 오버라이드 금지를 뜻함.
- 부모메소드를 수정하지 못하게 한다.
class FinalParent {
//부모 클래스 설계
//- test() > 나중에 상속받은 자식 클래스가 이 test() 메소드를 재정의하면 안됨
final public void test() {
System.out.println("부모 메소드");
}
}
class FinalChild extends FinalParent {
// public void test() {
//재정의 못함
// }
}
3. 클래스 적용
- 상속에서만 할 수 있음
- 부모 클래스를 수정하기 못하게 한다. > 상속을 불가능
//부모 클래스 설계 중 일 때 상속 불가능하게 설정
final class FinalMember {
}
//상속 불가능
//class FinalUser extends FinalMember {
//}