Develop/Java

final

dawonny 2021. 7. 19. 00:16
728x90
반응형

추상이 상속을 강제하는 것이라면 final은 상속/변경을 금지하는 규제다

final로 지정된 변수에는 한번 값이 할당되면 그 값을 바꿀 수 없다.

final 메소드는 상속이 안된다. 상속하려하면 오류발생

//Please don't change class name 'Main'

class Calculator {
    static final double PI = 3.14;
    int left, right;

    public void setOprands(int left, int right) {
        this.left = left;
        this.right = right;
        //final로 지정된 변수에는 한번 값이 할당되면 그 값을 바꿀 수 없기 때문에 오류가 발생한다.
        //Calculator.PI = 6;
    }

    public void sum() {
        System.out.println(this.left + this.right);
    }

    public void avg() {
        System.out.println((this.left + this.right) / 2);
    }
}

class Main {

    public static void main(String[] args) {
        Calculator c1 = new Calculator();
        System.out.println(c1.PI);
        //final로 지정된 변수에는 한번 값이 할당되면 그 값을 바꿀 수 없기 때문에 오류가 발생한다.
        //Calculator.PI = 10;
    }
}

결과

3.14

728x90
반응형