final 지정자
- 클래스나 멤버변수, 멤버메서드에 적용해서 사용함.
final + 클래스
변경할 수 없는 클래스, 확장될 수 없는 클래스
- final로 지정된 클래스는 다른 클래스의 조상클래스가 될 수 없음.
final + 멤버메서드
- 변경될 수 없는 메서드.
- final로 지정된 메서드는 오버라이딩을 통해 재정의를 할 수 없음.
final + 멤버 변수
- 변수명앞에 final 이라는 키워드가 붙으면, 값을 변경할 수 없음. ==> 상수가 된다.
대표적인 final 클래스는 String 클래스의 Math 클래스가 있음.
package finals;
class AA {
final int su = 150; // 상수로 인식 -> 값 변경 안됨
final void output() {
System.out.println("final output() 메소드 호출");
}
}
class BB extends AA {
// 상수로 인식되기 떄문에 값 변경이 안됨
// su = 250; ==> error 발생
// final로 지정된 메소드는 오버라이딩을 통해서 재정의를 할 수 없음
// @Override
// void output() {
// System.out.println("output() 메소드 재정의");
// } ==> error 발생
}
final class cc {
}
// final로 지정된 클래스는 다른 클래스의 조상(부모클래스)이 될 수 없음
// class DD extends CC {} => error 발생
public class Ex01 {
public static void main(String[] args) {
// TODO Auto-generated method stub
}
}
결과값을 보는 게 의미 없는 코드이기때문에 결과창은 첨부하지 않는다.(주석이 중요)
'Back-End > Java' 카테고리의 다른 글
[Java] Util 패키지의 주요 클래스_Random, Math, Calendar , Array, ArrayList (0) | 2021.08.19 |
---|---|
[Java] 예외(Exception) 처리 (1) | 2021.08.18 |
[Java] 접근지정자(접근제어자) 권한 (0) | 2021.08.18 |
[Java] 자바 빈(Java Bean), API, 패키지(package) (0) | 2021.08.18 |
[Java] 다형성(polymorphism) (0) | 2021.08.18 |
댓글