final

Terror·2024년 8월 12일

클래스의 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 에서도 오버라이딩 할 수 있는 메서드가 안보이는 모습)
profile
테러대응전문가

0개의 댓글