상속
상속이란, 기존의 클래스를 재사용하여 새로운 클래스를 작성하는 것이다.
상속을 사용하면
1. 더 적은 코드를 작성하여 새로운 클래스를 사용할 수 있고
2. 코드의 추가 및 변경이 용이하다.
3. 따라서, 코드의 재사용성이 높아지고 프로그램의 생산성과 유지보수에 크게 기여한다.
상속 구현
자바에서 상속을 구현할 때는 클래스 생성 시 상속하고자 하는 클래스를 'extends'와 함께 적어주면 된다.
1
2
|
class Child extends Parent {
}
|
cs |
이때 상속받는 클래스(Child)를 자손 클래스, 상속하는 클래스(Parent)를 조상 클래스라고 부른다.
조상 클래스와 자손 클래스의 관계
상속으로 연관된 부모 클래스와 자손 클래스의 관계 특징은 다음과 같다.
1. 자식 클래스는 조상 클래스의 클래스멤버를 모두 포함한다.
2. 따라서 자손클래스의 멤버 개수는 조상 클래스보다 항상 같거나 많다.
3. 하지만 조상 클래스의 생성자와 초기화 블럭은 포함하지 않는다.
상속과 포함
자바는 다중 상속을 허용하지 않으므로 어떤 클래스가 다른 여러 클래스와 관계를 맺어야 할 때는 포함을 활용할 수 있다. 포함관계를 맺는다는 것은 한 클래스의 멤버변수로 다른 클래스 타입의 참조변수를 선언하는 것을 뜻한다.
여러 클래스 중 어떤 클래스를 상속관계로, 그리고 포함관계로 맺어줄지 고민된다면 '~은 ~이다' 와 '~은 ~을 가지고 있다'를 대입하여 구분하면 편리하다.
상속관계 '~은 ~이다.'
포함관계 '~은 ~을/를 가지고 있다.'
프로그램에 사용되는 모든 클래스를 분석하여 가능한 많은 관계를 맺어 주도록 노력해서 코드의 재사용성을 높여야 한다.
'Java > Java의 정석 - 객체지향프로그래밍' 카테고리의 다른 글
오버라이딩(overriding) (0) | 2022.02.05 |
---|---|
Object클래스 (0) | 2022.02.05 |
변수의 초기화 (0) | 2022.02.03 |
생성자(Constructor) (0) | 2022.02.03 |
OOP - 오버로딩(overloading) (0) | 2022.02.03 |