다연이네

[days16] final 본문

Java

[days16] final

 다연  2020. 10. 17. 22:01
반응형

final

- 클래스 앞 : 자식클래스를 가질 수 없는 최종 클래스
- 메소드 앞 : 재정의 할 수 없는 최종 메소드 (오버라이딩 불가)
- 변수(필드, 지역변수) 앞 : 상수화

 

public class Ex03 {
	public static final int max_value = 100; //static final 위치 바뀌어도 됨
	//static 클래스당 하나 만들어지는 클래스 변수
	// final 상수화, 한번 값 할당하면 바뀌지 않고 고정된 값을 가짐

	public static void main(String[] args) {
		//상수
		//main()메소드 안에 선언된 [지역변수]
		final double PI = 3.141592;
		plusNumber(100);
		
//		Bottom b = new Bottom();
//		Top t = new Top();
		
	
		Top t = new Bottom();
		t.disp(); // >Bottom.disp() 출력
		
		System.out.println("END");
		

	}
	
	public static int plusNumber(final int n) { //매개변수, 파라미터, 그리고 [지역변수]
		//메소드 (final 파라미터)
		return n+100; //n++;라고 하면 오류 ( n의 값을 바꿀 수 없기 때문)
	}

}

/*final class Top{ //여기 final 붙히면 밑에 Bottom 클래스 오류
	
}
//에러 : The type Bottom cannot subclass the final class Top
//더이상 자식 클래스를 가질 수 없는 최종(마지막) 클래스 입니다 라고 선언할 때
//클래스 앞에 final 키워드를 붙힌다.
class Bottom extends Top{
	
}*/


class Top{
	/*final*/ void disp() { 
		System.out.println(">Top.disp()...");
	}
}

// private < default < protected < public
final class Bottom extends Top{
	//@Override 이게 없더라도 부모꺼 재정의 한 거
	//final이 붙은 메소드는 자식클래스에서 재정의(오버라이딩)할 수 없다.
	final void disp() { //Top클래스에서 final void disp()처럼 final 붙으면 여기 오류
		System.out.println(">Bottom.disp()...");
	}
}

반응형

'Java' 카테고리의 다른 글

[days16] 싱글톤패턴  (0) 2020.10.17
[days16] 다형성  (0) 2020.10.17
[days16] 클래스 간의 형변환 ( 사원, 정사원, 영업사원, 임시직사원)  (0) 2020.10.17
this, 생성자, static, 상속  (0) 2020.10.17
days08 ~ days11  (0) 2020.10.09
Comments