// 변수를 final 정의...publicclassMain{publicstaticvoidmain(String[] args){// TODO Auto-generated method stubfinalint number =10;
number =5;// 위에서 number 가 final로 정의되어 변경불가!!! 에러발생
System.out.println(number);}}
// 함수를 final 정의하지 않음Parent.java ----------------------------------------------publicclassParent{publicvoidshow(){
System.out.println("Hi~!");}}
Main.java ----------------------------------------------publicclassMainextendsParent{publicvoidshow(){
System.out.println("No! Hi~!");}publicstaticvoidmain(String[] args){// TODO Auto-generated method stub
Main main =newMain();// Parent의 show가 final로 정의되지 않았기 때문에 main의 show가 실행되어 No! Hi~! 출력된다.
main.show();}}
// 함수 show를 final 정의Parent.java ----------------------------------------------publicclassParent{publicfinalvoidshow(){
System.out.println("Hi~!");}}
Main.java ----------------------------------------------(Parent 상속)publicclassMainextendsParent{// final void show() 정의되어 재정의 불가...publicfinalvoidshow(){
System.out.println("No! Hi~!");}publicstaticvoidmain(String[] args){// TODO Auto-generated method stub
Main main =newMain();// Parent의 show가 final로 정의되지 않았기 때문에 main의 show가 실행됭되어 출력된다.
main.show();}}
// 클래스를 final 정의finalclassParent{publicvoidshow(){
System.out.println("Hi~!");}}
// Parent가 final 정의가 되어 있어 상속(extends)도 받을 수 없다.publicclassMainextendsParent{// <----- 에러 발생publicvoidshow(){
System.out.println("No! Hi~!");}publicstaticvoidmain(String[] args){// TODO Auto-generated method stub
Main main =newMain();// Parent의 show가 final로 정의되지 않았기 때문에 main의 show가 실행됭되어 출력된다.
main.show();}}