클래스의 final
package Final;
public final class Final { }
class FinalExam extends Final { }

- 해당 클래스는 “상속”이 “불가”하게 만들어준다
2. 인스턴스,클래스 변수의 final
package Final;
public final class Final {
private final int iv;
private static final int sv;
public static void main(String[] args) {
}
}

- 초기값 설정시에 데이터 “대입” 가능하다
- 생성자 호출시에 데이터 “대입” 가능하다
- 위 두가지를 제외하곤 데이터의 “대입”이 불가하게만들어준다

- (
final로 선언된 변수들은, Generate 기능을 활용하더라도,setter 가 안보이는 모습이다)
메서드의 final
package Final;
public class Final {
public final void instanceMethod(){}
public final static void staticMethod(){}
}
class FinalExam extends Final {
@Override
public final void instanceMethod(){}
public static final void staticMethod(){}
}

- 인스턴스 메서드 오버라이딩시 오류가 생기는 모습
- static 메서드는 어차피 오버라이딩이 안되기때문에 별 의미가없다

- (
Generate 에서도 오버라이딩 할 수 있는 메서드가 안보이는 모습)