티스토리 뷰

JAVA

final 클래스와 메소드

Y.일월 2019. 9. 17. 12:52

final 클래스와 메소드


앞에서 포스팅했던 final 필드에 대한 설명을 기억하는가?

final필드는 초기값이 저장되면 프로그램 실행 도중 수정이 불가능하여 변화되지 않을 필드를 보통 final필드로 선언한다고 설명했을 것이다.


클래스와 메소드도 마찬가지로 final로 선언될 수 있다.

final 키워드를 붙인 클래스는 최종적인 클래스가 되고, final 키워드를 붙인 메소드는 최종적인 메소드가 된다.

즉, final 클래스는 부모클래스가 될 수 없어 자식 클래스를 가질 수 없으며, final 메소드는 자식클래스에서 오버라이딩 할 수 없다.






예를 들어,


final class ClassName{



}


ClassName 클래스는 부모 클래스가 될 수 없다.







Parent.java

public class Parent{


public final void method() {


System.out.println("부모 메소드 입니다.");

}

}



Child.java

public class Child extends Parent{


//오류 날거에요!

public void method() {


System.out.println("자식 메소드 입니다.");

}                       

}



final 메소드는 오버라이딩 할 수 없다.

'JAVA' 카테고리의 다른 글

추상클래스(Abstract Class)  (0) 2019.09.19
타입변환과 다형성  (0) 2019.09.18
상속(Inheritance)  (0) 2019.09.17
Getter와 Setter  (0) 2019.09.17
final 그리고, 상수(Static final)  (0) 2019.09.16
공지사항
최근에 올라온 글