티스토리 뷰

Programming/Java&Spring

[Java] final 키워드

Namhyun Sung 2020. 5. 29. 16:00

1. final 클래스

final class FinalClass {

}

public class FinalTest extends FinalClass { //컴파일 에러

}

final이 클래스 앞에 사용되면 다른 클래스가 상속할 수 없다.

final class FinalClass extends FinalClass{

}

public class FinalTest {

}

반대로, final 클래스가 다른 클래스는 상속할 수 있다.


2. final 메소드

메소드에 final이 붙게 되면 재정의(Overriding)을 할 수 없다.

public class FinalTest extends FinalClass {
    public void test() { // 컴파일 에러, 'test()' cannot override 'test()' in 'FinalClass'; overridden method is final

    }
}

 class FinalClass {

    public final void test() {
        System.out.println("final Method");
    }
}

3. final 변수

final 변수는 선언할 때, 초기값을 넣어 줘야 한다. final이 붙은 변수는 상수 역할을 하기 때문에 값 변경이 안된다.

public class FinalTest {

    final int maxValue = 100;

    public void change() {
        maxValue = 200; // 에러 발생
    }
}

final 변수가 무조건 선언과 동시에 초기값을 넣어줘야 하는 것은 아니다.

아래 코드 처럼, 생성자(constructor)를 통해서 값을 설정할 수 있다.

public class FinalTest {

    private final int maxValue;

    public FinalTest(int maxValue) {
        this.maxValue = maxValue;
    }
}
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함