public final class SeongjinClass{...}
public class sss_jin extends SeongjinClass{...} //상속 불가
public class Post{
public void m1(){...}
public final void m2(){...}
}
public class Postic extends Post{
public void m1(){...} //상속 가능
public void m2(){...} //상속 불가능
}
3.final 변수는 한 번 값을 할당하면 수정할 수 없습니다. 즉, 초기화는 한번만 가능하다.
//이런식으로 final 붙여서 선언하면 수정 x
public static final double PI = 3.141592653589793;
final 붙여서 초기화만 해놓고 다른 값을 갖도록 할 수도 있다. 그 이후에 한 번 값을 할당하면 그 이후에는 수정할 수 없다. 'blank final' 변수라고 한다.
public class Test{
private final int value;
publuc setValue(int value){
this.value = value;
}
public int getValue(){
return value;
}
}
4.final 변수의 짝궁, static
public static final double PI = 3.141592653589793;
static이 붙어있는 걸 볼 수 있다. 보통 이런 식으로 많이 쓴다. 이유는?
final 변수를 쓰면 그 값을 계속 그대로 쓴다는 의미. static과 함께 쓰면 메모리 측면에서 효율이 높아진다. blank final변수는 인스턴스마다 다른 값을 갖는다 --> 이런 경우 final이어도 초기화가 다르기 때문에 static을 사용하지 않는다.