final은 클래스 상속과 많이 연관성을 가지고 있다.
왜냐하면 이 "final" 이라는 예약어가 붙은 클래스와 메소드는 상속과 오버라이드가 막히게 되기 때문이다.
이 "final" 클래스는 상속을 금지 시킨다.
자기가 만든 클래스를 다른 프로그래머가 상속 받아서 사용을 금지 하고 싶을때 사용하면 된다.
"Student"클래스는 "Human" 클래스를 상속을 받고 있다.
빨간 네모를 보시면 상속을 받는데, 이클립스에서는 에러를 내보내고 있다.
왜 내보내는지 확인해보니 "Human"클래스의 녹색 네모를 보시면 "final"로 표시하고 있다.
즉. 상속 방지 클래스라는 것
"final"클래스를 상속 할수 없다라는 내용
이번에는 "final" 메소드 인데요. 정답 부터 말씀 드리자면 이 메소드는 오버라이딩을 금지 시킨다.
클래스 상속은 시키되 몇개의 메소드만 재정의해서 사용을 금지 시키는 것이다
빨간 네모를 보시면 "setAge"메소드를 오버라이딩하려고 하는데 빨간줄로 에러를 내보낸다
그 이유인즉, "Human"클래스의 "setAge"메소드를 보시면 "final"로 정의되어 있기때문
즉, 오버라이딩이 금지된 메소드이기 때문에 에러를 내보내는 것이다
"final"메소드는 오버라이드 할수 없다는 내용