쌓고 쌓다

[JAVA] final 키워드 본문

프로그래밍/java

[JAVA] final 키워드

승민아 2021. 12. 24. 23:02

final 키워드는 3가지로 사용된다.

 

1. final 클래스

final class finalClass{

}

class subClass extends finalClass // 컴파일 에러
{
    
}

클래스 앞에 final 키워드를 사용할 경우 그 클래스는 상속 받아 사용할 수 게 된다.

즉, final 클래스는 상속 받을수 없게 된다.

 

2. final 함수(메소드)

class superClass{
    
    public final int sum(int a,int b)
    {
        return a+b;
    }
    
}

class subClass extends superClass{
    
    public int sum(int a,int b) // 컴파일 에러
    {
        return a+b+10;
    }
    
    
    
}

함수에다 final 키워드를 사용한다면 그 함수는 오버 라이딩이 불가능해지고, 무조건 상속 받아 사용하게 해야 한다.

 

3. final 필드 ( 상수 만들기 )

class superClass {
    final int MAX = 100000;

    void g()
    {
        int arr[] = new int[MAX]; // 상수 활용
        MAX=10; // 컴파일 에러 (변경 불가능)
    }
}

필드에 final를 사용하면 그것은 상수가 된다.

상수 필드는 한번 초기화하면 변경이 불가능하다.

 

final 키워드를 public static과 함께 사용하면 어디든 사용이 가능한 상수가 된다.

class superClass {
    final public static int MAX = 100000;
}


public class Main{

    public static void main(String[] args) {

        System.out.println(superClass.MAX);

    }
}

같은 클래스라면 그냥 바로 사용이 가능하다.

class superClass {
    final public static int MAX = 100000;
    
    void Print()
    {
        System.out.println(MAX); // MAX를 바로 사용 가능
    }
}

 

Comments