반응형
안녕하세요 알통몬입니다. 공감 및 댓글은 포스팅 하는데 아주아주 큰 힘이 됩니다!! 포스팅 내용이 찾아주신 분들께 도움이 되길 바라며 더 깔끔하고 좋은 포스팅을 만들어 나가겠습니다^^
|
클래스를 선언할 때 final 키워드를 class 앞에 붙이게 되면
최종적인 클래스가 돼서 상속할 수 없는 클래스가 됩니다.
=> final 클래스는 부모 클래스가 될 수 없기 때문에 자식 클래스를 만들 수 없음.
public final class 클래스 { ... }
따라서 public class 자식클래스 extends 클래스 { ... } 할 수 없습니다.
예제)
public final class Member {
}
//public class VeryVeryImportantPerson extends Member {
} 위처럼 final 클래스를 부모 클래스로 할 수 없습니다.
메서드를 선언할 때 final 키워드를 붙이면
해당 메서드는 최종적인 메서드가 되므로 오버라이딩할 수 없는 메서드가 됩니다.
=> 부모 클래스를 상속하여 자식 클래스를 선언할 때 부모 클래스에
선언된 final 메서드는 자식 메서드에서 재정의할 수 없다.
public final 리턴타입 메서드([매개변수,...]) { ... }
예제)
부모 클래스
public class Car {
//필드
public int speed;
//메소드
public void speedUp() {
speed += 1;
}
//final 메소드
public final void stop() {
System.out.println("차를 멈춤");
speed = 0;
}
}
자식 클래스
public class SportsCar extends Car {
@Override
public void speedUp() {
speed += 10;
}
//오버라이딩을 할 수 없음
/* 부모 클래스의 stop 메서드 final 이 붙었으므로
@Override
public void stop() {
System.out.println("스포츠카를 멈춤");
speed = 0;
}
*/
}
반응형
'자바' 카테고리의 다른 글
JAVA 자바 타입 변환과 다형성 자동 타입 변환(Promotion) (0) | 2017.03.12 |
---|---|
JAVA 자바 protected 접근 제한자 (0) | 2017.03.12 |
JAVA 자바 메서드 재정의 - 부모 메서드 호출(super) (0) | 2017.03.12 |
JAVA 자바 메서드 재정의 - 메서드 재정의(@Override) (0) | 2017.03.12 |
JAVA 자바 부모 생성자 호출 (0) | 2017.03.12 |