유블로그

[Java] final 본문

Java

[Java] final

yujeong kang 2020. 8. 12. 12:31

final 3가지 의미

1. 클래스 : 상속 불가
2. 메서드 : 재정의(오버라이딩) 금지
3. 변수 : 상수로 사용, 더 이상 값을 할당할 수 없다.

 

import java.util.Random;

/*final*/ class Parent{
	/*final*/ void call() {}
}
class Child extends Parent {
	void call() {}
}

//class MyString extends String {	}	// String 은 final 이기 때문에 상속받을 수 없다.
class MyRandom extends Random {	// API class 상속 받을 수 있다.
	public int nextInt(int range) {	// Random의 nextInt() 함수 오버라이딩
		return super.nextInt(range) + 1;
	}
}
public class Test {
	public static void main(String[] args) {
		Random r = new MyRandom();	// 묵시적 형변환
		int num = r.nextInt(10) /*+ 1  안해줘도 위에서 바꿔주니까 1~10 됨*/;	
		
	}
}

'Java' 카테고리의 다른 글

[Java] Java IO  (0) 2020.08.13
[Java] 내부 클래스  (0) 2020.08.12
[Java] Abstract, Interface  (0) 2020.08.12
[Java] 예외(Exception)  (0) 2020.08.11
[Java] Iterator  (0) 2020.08.11