Java

Java문법) final 키워드

sejin2 2023. 10. 30. 11:21

final 키워드

: 해당 선언이 최종 상태이며 수정될 수 없음을 의미

클래스 및 메서드 선언 시 final 키워드를 사용하면 상속과 관련됨

  • 상속할 수 없는 final 클래스 → 부모 클래스가 될 수 없어 자식 클래스를 만들 수 없음을 의미 
final class Final01 {
	
}
class FinalInher extends Final01 {  // 오류 : class 앞에 final을 붙이면 상속 불가 
	
}
  • 재정의 할 수 없는 final 메서드 →  부모 클래스에 선언된 final 메서드는 자식 클래스에서 재정의 할 수 없음
class Final02 {
	int num = 10;
	final int NUM2 = 34; // 상수 ( 변수 앞에 final 붙임, 값이 한 번 저장되면 변경이 불가) 
						 //	( 변수로 착각할 수 있어 대체적으로 전부 대문자로 쓴다 ) 
	
	final int play() {	// 메서드 앞에 final 을 붙이면 오버라이딩 불가 
		// NUM2 = 40;	// 오류 : 다른 값으로 변경 불가 
		return NUM2;
	}
}
class Final02Infer extends Final02 {
	int play() {	// 메서드 재정의 불가 
		return 3;
	}
}