final은 최종이라는 의미다. 같은 선상에서 Java의 final 기능을 이해하면 쉽다. final 필드에 초기값을 저장하면 그 값이 최종값이 되어 수정할 수 없다.
final로 지정한 값을 강제로 바꾸려고 하면 에러가 발생하는데 이는 변수, 메소드, 클래스 모두에 적용된다. 메소드의 경우 Override로 재정의 할 수 없고, 클래스의 경우 상속이 되지 않는다.
아래 예제에서 에러가 나는 부분을 살펴보면 빠르게 이해할 수 있다.
class Final1 { //class Final1은 line 11 error
int vI01 =100; //final int vI01은 line22 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);
}
}
'문돌이의 IT > 자바(Java)' 카테고리의 다른 글
자바(Java) awt Button 클래스 사용방법 (0) | 2016.03.17 |
---|---|
자바(Java) Abstract 추상클래스, 추상메소드 (0) | 2016.03.16 |
자바(Java) 싱글톤 Singleton (0) | 2016.03.14 |
자바(Java) 정적(static)멤버, 정적초기화블럭 (0) | 2016.03.13 |
자바(Java) instanceof, getClass 활용예제 (0) | 2016.03.12 |