추상(abstract) 이 상속을 강제하는 것이라면 final
은 상속/변경을 금지
하는 규제이다.
final 필드
class Calculator {
static final double PI = 3.24;
}
- final로 지정된 필드(변수)에는 한번 값이 할당되면 그 값을 바꿀 수 없다.
- final 변수에 값을 재할당하면 컴파일 오류가 발생한다.
final 메소드
final 메소드를 상속하려 하면 컴파일 오류가 발생한다.
class A {
final void b() {}
}
class B {
void b() {} // error: overridden method is final
}
final 클래스
final 클래스를 상속하려고 하면 컴파일 오류가 발생한다.
final class C {
final void b() {}
}
class D extends C {} // error: cannot inherit from final C
참고자료
https://opentutorials.org/course/1223/6145
'언어 > Java' 카테고리의 다른 글
[Java] 상속 (0) | 2023.08.22 |
---|---|
[Java] abstract (0) | 2023.08.10 |
[Java] 접근 제어자 (0) | 2023.08.10 |
[Java] 클래스와 인스턴스 (0) | 2023.08.10 |