Java

Final

에어팟맥스 2022. 6. 25. 23:17

 

field 에 final 이 붙으면 더이상 새로운 값으로 할당할 수 없다.

public final double PI = 3.141592;
	
	public void greeting() {
		System.out.println("== 안녕하세요 ==");
	}

메소드에 final 을 붙이면 자식 클래스에서 메소드의 overriding(재정의)을 할 수 없게 된다.

public final void rule() {
		System.out.println("== Hi ==");
	}

 

#### Main ####

	public static void main(String[] args) {
		
		Final_test_1 ft1 = new Final_test_1();
		
		ft1.id = "leess";
		ft1.name = "이순신";
//		ft1.PI = 234.34343; // final이므로 새로운 값을 할당할 수 없기에 오류 발생

		////////////////////////////////////////////////////////
		
		Child_final_test_1 child = new Child_final_test_1();
		child.greeting();
		child.rule();
		
	}

 

final 로 되어진 클래스는 다른 클래스로 상속해줄 수 없다.
즉, final 로 되어진 클래스는 다른 클래스에서 부모 클래스로 사용할 수 없다는 말이다.

 

public final class Final_test_2 {

	
	String id;
	String name;
	
	public void example() {
		System.out.println("== 연습입니다. ==");
	}
	
}
public class Child_final_test_2 extends Final_test_2 {

	// Final_test_2 클래스가 final 클래스 이므로 상속받을 수 없다.
	
}