본문 바로가기


Java

[Java] final keyword(final 키워드)


1. final 변수

final의 의미는 최종의 라는 뜻입니다. 말그대로 더 이상의 값의 변화가 없어야 하는 변수가 있을 때 final을 붙여 final변수로 만듭니다.


예제1)

public class Webtest {
    public static void main(String[] args){
        //*final int a;
        final int a = 1;


        int tempv = 2;
        //* a = tempv;
        tempv = a;
    }
}

예제1의 소스코드 중 //*로 주석처리 한 부분이 에러가 생기는 부분입니다.

final은 최종이 되어야 하기 때문에 꼭 생성시에 초기화를 해주셔야 합니다.

그리고 생성한 이후에 다른 값으로 변경하는 것 또한 허용 되지 않습니다.


2. final class & method


final class나 method는 상속에 관여하게 됩니다.


예제2)

final public class Aclass {
    public void printhelloworld(){
        System.out.println("Hello worldA");
    }


    final public void Amethod(){

    }
}
//*public class Bclass extends Aclass {

    @Override
    public void printhelloworld(){
        System.out.println("Hello worldB");
    }

}

이런식으로 final로 선언된 Aclass를 상속하는 것은 불가능하고 상속이 안되기 때문에 오버라이딩또한 불가능합니다.



예제3
public class Aclass {
    public void printhelloworld(){
        System.out.println("Hello worldA");
    }


    final public void Amethod(){

    }
}
public class Bclass extends Aclass {

    @Override
    public void printhelloworld(){
        System.out.println("Hello worldB");
    }

    //*@Override
    public void Amethod(){

    }
}

이런 식으로 final로 선언된 method는 상속했다 하더라도 오버라이딩이 불가능합니다.