JAVA 자료실

final 정의

작성자 정보

  • 작성자 최고관리자
  • 작성일

컨텐츠 정보

본문


// 변수를 final 정의...
public class Main {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		final int number = 10;
		
		number = 5; // 위에서 number 가 final로  정의되어 변경불가!!! 에러발생
		
		System.out.println(number);

	}

}



// 함수를 final 정의하지 않음
Parent.java ----------------------------------------------
public class Parent {
	public void show() {
		System.out.println("Hi~!");
	}
}



Main.java ----------------------------------------------
public class Main extends Parent {
	public void show( ) {
		System.out.println("No! Hi~!");
	}

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Main main = new Main();
		// Parent의 show가 final로 정의되지 않았기 때문에 main의 show가 실행되어 No! Hi~! 출력된다.
		main.show();
	}

}




// 함수 show를 final 정의
Parent.java ----------------------------------------------
public class Parent {
	public final void show() {
		System.out.println("Hi~!");
	}
}


Main.java ---------------------------------------------- (Parent 상속)
public class Main extends Parent {
	// final void show() 정의되어 재정의 불가...
	public final void show( ) {
		System.out.println("No! Hi~!");
	}

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Main main = new Main();
		// Parent의 show가 final로 정의되지 않았기 때문에 main의 show가 실행됭되어 출력된다.
		main.show();
	}

}




// 클래스를 final 정의
final class Parent {
	public void show() {
		System.out.println("Hi~!");
	}
}


// Parent가 final 정의가 되어 있어 상속(extends)도 받을 수 없다.
public class Main extends Parent {    // <-----  에러 발생
	public void show( ) {
		System.out.println("No! Hi~!");
	}

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Main main = new Main();
		// Parent의 show가 final로 정의되지 않았기 때문에 main의 show가 실행됭되어 출력된다.
		main.show();
	}

}

관련자료

댓글 0
등록된 댓글이 없습니다.
알림 0