final은 최종이라는 의미다. 같은 선상에서 Javafinal 기능을 이해하면 쉽다. final 필드에 초기값을 저장하면 그 값이 최종값이 되어 수정할 수 없다.


 final로 지정한 값을 강제로 바꾸려고 하면 에러가 발생하는데 이는 변수, 메소드, 클래스 모두에 적용된다. 메소드의 경우 Override로 재정의 할 수 없고, 클래스의 경우 상속이 되지 않는다.

 

 아래 예제에서 에러가 나는 부분을 살펴보면 빠르게 이해할 수 있다.

 

class Final1 { //class Final1line 11 error

 int vI01 =100; //final int vI01line22 error

 

 void mPrint(){ //final void mPrint()line12 error

 System.out.println("Final 확인");

 }

}

 

class FinalMain extends Final1{ // line 11 클래스 에러

 void mPrint(){ // line12 메소드 에러

 System.out.println("FinalMain 확인");

 }

 public static void main(String[] args) {

 FinalMain obj = new FinalMain();

 Final1 obj1 = new Final1();

 

 obj.mPrint();

 obj1.mPrint();

 

 obj.vI01=200; // line22 변수 에러

 System.out.println(obj.vI01);

 }

}

 


+ Recent posts