클래스나 변수에 final을 붙이면 시간이 지나도 처음 정의된 상태가 변하지 않는 것을 보장한다는 의미
final String hello = "Hello world";
hello = "Bye" // compile error
public void func(final int number) {
System.out.println(number);
// number = 10; compile error!
}
final class AAA {
final String hello;
AAA() {
hello = "hello world";
}
}
class BBB extends AAA() { // compile error!
}
class AAA {
final String hello = "hello world";
final String getHello() {
return hello;
}
}
class BBB extends AAA {
@Override
String getHello() { // compile error !
return "See you around";
}
}
final List<String> list = new ArrayList<>();
list.add("Hello");
list.add("World");