반응형
클래스 상속
public class 자식클래스 extends 부모클래스 {
}
- 프로그램에선 자식 클래스가 부모 클래스를 선택
- 단 하나의 부모 클래스만 상속 받을 수 있음 (다중상속x)
- 부모 클래스에서 private 접근 제한을 갖는 필드와 메소드는 상속 대상에서 제외
- 부모 클래스와 자식 클래스가 다른 패키지에 존재한다면 default 접근 제한을 갖는 필드와 메소드도 상속 대상에서 제외
부모 생성자 호출
public 자식생성자() {
super();
}
- 자식 객체를 생성하면, 부모 객체가 먼저 생성되고 그 다음에 자식 객체가 생성됨
- 부모 클래스에 기본 생성자가 없고 매개변수를 갖는 생성자만 있다면 super(매개값,...) 코드를 넣어줘야 함
- 자식 생성자 호출
- 자식 생성자에서 super();호출
- 부모 객체 생성
- 자식 객체 생성
메소드 오버라이딩
- 부모 클래스에게 상속받은 메소드를 자식 클래스에 맞게 재정의 하는 것
- 메소드가 오버라이딩 됨에 따라 부모 메소드는 숨겨지고, 자식 메소드가 우선적으로 사용됨
메소드 오버라이딩 규칙
- 부모 메소드의 선언부와 동일해야 함
- 접근 제한을 더 강하게 오버라이딩 할 수 없음
- 새로운 예외를 throws 할 수 없음
부모 메소드 호출
super.부모메소드();
- super는 부모 객체를 참조하고 있기 때문에 부모 메소드에 직접 접근할 수 있음
final 클래스
- 최종적인 클래스이므로 더 이상 상속할 수 없는 클래스가 됨
- 부모 클래스가 될 수 없기 때문에 자식 클래스를 만들 수 없음
public final class String { ... }
final 메소드
최종적인 메소드이므로 오버라이딩할 수 없는 메소드가 됨
부모 클래스에서 선언된 final 메소드는 자식 클래스에서 재정의 할 수 없음
protected 접근 제한자
같은 패키지에서는 default 처럼 접근이 가능하나, 다른 패키지에서는 자식 클래스만 접근을 허용함
반응형
댓글