final 키워드는 이름 그대로 끝이라는 뜻이다
변수 앞에 final 키워드를 사용하면 변수 초기화 시의 값을 변경할 수 없다
-> 상수처럼 동작
static final 변수는 대문자로 작성한다
final 필드의 초기화가 클래스 내부에서 일어난다면
static 으로 작성하는 편이 좋을 수 있다
그렇지 않은 경우 모든 인스턴스에서 해당 변수에 대한 메모리를 차지하기 떄문에
static 으로 한 번 선언해서 사용한다면 메모리 영역을 아낄 수 있다
static 필드를 상수 필드라고 부른다
상수는 변하지 않고 항상 일정한 값을 갖는 수를 말한다
클래스의 final 은 상속의 끝임을 나타낸다
메서드의 final 은 오버라이딩의 끝임을 나타낸다
클래스에 final 을 사용하면 더이상 상속할 수 없는 마지막 자식이 되고
메서드의 final 을 사용하면 더이상 오버라이딩하여 사용할 수 없다