클래스나 멤버변수, 멤버메서드에 적용해서 사용함
클래스 :
변경할 수 없는 클래스, 확장할 수 없는 클래스.
final 로 지정된 클래스는 다른 클래스의 조상(부모) 클래스가 될 수 없음 (extends 할 수 X)
멤버메서드 :
변경될 수 없는 메서드.
final로 선언된 메서드는 오버라이딩(재정의)을
통해서 메서드를 재정의 할 수 없음
멤버변수 :
변수명 앞에 final 이라는 키워드가 붙으면
값을 변경할 수 없음 ==> 상수가 됨
※ 대표적인 final 클래스는 String 클래스와 Math 클래스임
<예시>
=============================코드=============================
class AA {
final int su = 295; // 상수로 인식 => 값 변경이 안 됨!
final void output() {
System.out.println("final output() 메서드 호출");
}
}
class BB extends AA {
// final 키워드가 붙어서 상수가 되었으므로 값 변동이 불가하다!
//su = 137;
// final로 지정된 메서드는 메서드 재정의(오버라이딩) 할 수 없음!
//@Override
//void output() {
//System.out.println("output() 메서드 재정의");
//}
}
//final로 지정된 클래스는 다른 클래스의 부모클래스가 될 수 없음!!
final class CC { }
//class DD extends CC { }
public class Final {
}