1. Final
Final 변수란?
- 변수를 상수화 시킴
- 즉, 한번 값이 결정된 변수의 값은 변경 불가능
Final 클래스란?
- 클래스를 상속하는 것을 허용하지 않겠다는 뜻
- 대표적으로 String 클래스가 있다
- 클래스가 final일 시 해당 클래스의 내부 메소드도 final로 선언되나, 변수의 경우는 final 개념을 갖지 않음
Final 메소드란 ?
- 오버라이딩을 허용하지 않겠다는 뜻
- 클래스는 상속이 가능하되 해당 메소드는 오버라이딩이 불가능
소스 예시
- final Class Book 👉 상속받아서 파생 클래스 만들지 못함
- pricate static final String ~~ 👉 클래스 변수는 반드시 선언 시 초기화 해주어야 하며 , 다른 곳에서는 초기화 못함
- private final ~~ 👉 인스턴스 변수는 선언 시 초기화 해주거나, 생성자를 통해 값 지정 가능
- public final void func() 👉 final 메소드로 상속 받는 클래스에서 오버라이딩을 못함
- final int ~~ 👉 final 지역 변수는 일반 변수와 같이 scope이 동일하지만, 한번 초기화 되면 그 이후 값 변경 불가
- final 클래스 내에 일반 변수는 final 특징을 갖지 않음
- final 클래스 내에 일반 메소드는 해당 클래스가 상속 받지 못하므로 자동으로 final 특징 가짐
출처 :
1. 공부하는 소햐 블로그, 2019. 3. 8, https://goodncuteman.tistory.com/4
2. 메성, 2020. 2. 1, https://it-mesung.tistory.com/85?category=830540