-
[JAVA] final프로그래밍/JAVA 2020. 8. 10. 00:48
final 클래스
final이 클래스 앞에서 사용되면 클래스를 상속받을 수 없음을 지정
final class FinalClass { // 이 클래스는 상속 불가 .... } class SubClass extends FinalClass { // 컴파일 오류 발생, FinalClass 상속 불가 .... }
final 메소드
final로 메소드를 선언하면 오버라이딩할 수 없는 메소드임을 선언
자식 클래스가 부모 클래스의 특정 메소드를 오버라이딩하지 못하게 하고 무조건 상속받아 사용하게끔 함
public class SuperClass { protected final int finalMethod() { .... } // finalMethod()는 자식이 오버라이딩 불가 } class SubClass extends SuperClass { // SubClass가 SuperClass 상속 protected int finalMethod() { .... } // 컴파일 오류, finalMethod() 오버라이딩 안됨 }
final 필드
final로 필드를 선언하면 필드는 상수가 됨
public class FinalFieldClass { final int ROWS = 10; // 상수 선언, 초기값 10으로 지정 void f() { int[] intArray = new intArray[ROWS]; // 상수 활용 ROWS = 30; // 컴파일 오류, final 필드값은 변경할 수 없음 } }
상수 필드는 한번 초기화되면 값을 변경할 수 없음
final 키워드를 public static과 함께 사용하면 프로그램 전체에서 사용할 수 있는 상수가 됨
class SharedClass { public static final double PI = 3.14; } // SharedClass 내에서 사용할 때 double area = PI * radius * radius; // 다른 클래스에서 사용할 때 double area = SharedClass.PI * radius * radius;
출처 : http://www.yes24.com/Product/Goods/61269276
'프로그래밍 > JAVA' 카테고리의 다른 글
[JAVA] 추상 클래스와 인터페이스 (0) 2020.09.07 [JAVA] 배열 사용법 (0) 2020.09.03 [JAVA] static 멤버, static 메소드 (0) 2020.08.05 [JAVA] 자바 리플렉션(Java Reflection) (0) 2020.07.31 [JAVA] 상속 예제 (0) 2020.07.26