[Java] final 키워드

Woozard·2023년 5월 4일
6

Java

목록 보기
3/13
post-thumbnail

final 의미

final을 이용해서 선언한 메소드는 서브 클래스에서 오버라이딩(overriding)이 안된다.
오버로딩(overloading)은 가능하다.

final 예제 및 설명


class parent {
    void print() {
        System.out.println("Hi parent");
    }
}

class child extends parent {
    void print() {
        System.out.println("Hi child");
    }
}

위에 코드는 자식 클래스에서 부모 클래스에 있는 메소드를 오버라이딩 하고 있다. 하지만 부모 클래스에 메소드 앞에 final을 붙이게 되면 어떻게 될지 아래 코드를 살펴보자.

class parent {
    final void print() {
        System.out.println("Hi parent");
    }
}

class child extends parent {
    void print() {
        System.out.println("Hi child");
    }
}

Cannot overide the final method from 부모 클래스
영문 그대로 부모 클래스에 final 메소드를 서브 클래스(자식 클래스)에서 오버라이딩 할 수 없다고 에러 문구가 뜬다. 그래서 fianl 키워드는 서브 클래스에서 오버라이딩 하는 것을 방지할 때 주로 사용된다.

profile
Hello, World!

0개의 댓글