2013년 10월 28일 월요일

[JAVA 파이널 클래스,메소드]자바 final class, final method 1. 화이널 클래스

[JAVA 파이널 클래스,메소드]자바 final class, final method
 
1. 화이널 클래스(final class)
 
자바에서는 모든 클래스는 하나이상의 하위 클래스를 가질 수 있으나, 상위 클래스는 하나만을 가질 수 있음.
단, final클래스는 하위 클래스를 가지지 못함.
마지막 하위 클래스, 하위 클래스를 만들수 없다.(더 이상 상속 될 수 없다.)
final class A
{ ...
}
class B extends B // 오류
 
어떤 클래스가 더 이상 추가될 기능이 없이 완벽하게 만들어 졌다면 final class로 선언
재정의 하는것이 바람직하지 않거나 안전하지 않은 경우 사용될 수 있다.
예)java.lang.String
 
2. 화이널 메소드(final method)
 
마지막으로 재정의된 메소드, 더 이상 재정의 안된다.
더 이상 구현될 필요가 없거나, 매우 중요한 메소드 이므로 하위 클래스에 의해 재정의 되면 안 된다는 의미로 사용된다.
class A
{
    final void m()
    ...
}
class B extends A
{
    void m() // 오류

static 메서드(클래스 메소드)는 자동으로 final 메서드가 됨(overriding불가능)

댓글 없음:

댓글 쓰기