SECTION 10 - 상속
272 page.
1. 상속
: 부모 (역할을 하는) 클래스가 자식 (역할을 하는) 클래스에게 클래스 멤버를
물려주는 것을 상속 이라고 한다.
클래스 멤버는 클래스 변수와, 클래스 메서드를 의미한다.
2. 자식 클래스 선언
: extends 키워드를 사용해 상속받을 클래스를 지명할 수 있다.
자식 클래스는 부모 클래스의 모든 멤버를 그대로 가져다 쓸 수 있다.
class A { // 부모 클래스는 자식 클래스에서 지명받기 전에는 부모 클래스 역할을 하지 않는다.
...
}
class B extends A { // B 클래스에서 extends A를 작성함으로써 A는 B의 부모 클래스가 된다.
... // 반대로 B 클래스는 A 클래스의 자식 클래스가 된다.
}
3. super()
: 자식 클래스에서 부모 클래스의 생성자를 호출하는 키워드로 super() 을 사용한다.
필요에 따라 매개변수를 전달할 수 있다.
개발자가 직접 생성자를 선언할 때는 자식 클래스에서 반드시 부모 클래스의 생성자를 호출 해야 한다.
super()을 자식 클래스에서 개발자가 직접 사용하지 않는 경우에는,
생략되어 있는 것으로 간주 하면 된다.
이런 경우는, 부모의 생성자를 알아서 가져온 경우인데, 매개변수가 0개짜리인 생성자를 호출하고 있다고 보면 된다.
4. 자바는 4가지 접근 제한자를 사용.
:
1) public : 모든 패키지, 모든 클래스에서 접근이 가능.
2) protected : 같은 패키지 안에서 접근 가능. 다른 패키지라도 자식 클래스라면 접근 가능.
3) default : 같은 패키지 안에서만 접근 가능.
4) private : 클래스 외부에서 접근이 불가능.
(멤버변수에 private를 붙혀 주게 되면, 멤버변수에 접근하기 위해 getter, setter을 사용 한다.
1), 4)를 주로 사용하고, 3)은 사실상 사용하지 않는 느낌.
5. 오버라이딩
: 자식 클래스가 상속받은 메서드의 내용을 변경해서 사용할 수 있다.
상속받은 메서드를 변경해서 다시 구현하는 것을 오버라이딩 이라고 한다.
6. 부모 클래스의 메서드 호출
: super 키워드를 사용해 부모 클래스의 메서드를 호출할 수 있다.
super.부모 메서드();
'멘토씨리즈 자바 > 이론' 카테고리의 다른 글
[핵심정리] 예외처리 (0) | 2023.06.04 |
---|---|
[핵심정리] 다형성과 타입 변환 (0) | 2023.06.02 |
[핵심정리] 생성자 (0) | 2023.06.02 |
[핵심정리] 메서드 (0) | 2023.06.01 |
[핵심정리] 클래스 (0) | 2023.05.30 |