- 자바의 정석 (기본편)을 참고했습니다.
- 복습을 위한 게시글입니다.
- 소스에 오타가 있을 수 있습니다. ^^:;
상속의 특징
Java 에서는 다중 상속 대신 단일 상속만을 허용한다.
다중 상속을 허용하지 않기 때문에 클래스 간의 관계가 보다 명확하고 코드를 더욱 신뢰할 수 있는 특징이 있다.
자손 클래스는 조상 클래스의 모든 멤버를 상속받는다.
- 다만 생성자는 상속되지 않는다.
자손 클래스의 멤버 개수는 조상 클래스의 멤버 개수와 같거나 그보다 많다.
상속을 사용하는 이유
기존의 클래스를 재사용하여 새로운 클래스를 작성하는 것
상속을 통해 클래스를 작성하면 보다 적은 양의 코드로 새로운 클래스 생성이 가능하다.
코드를 공통적으로 관리할 수 있기 때문에 코드의 추가 및 변경이 매우 용이하다.
> 코드의 재사용성을 높이고 중복을 제거하여 프로그램의 생산성, 유지보수에 크게 기여한다.
상속 예제 코드
class Ex7_1 {
public static void main(String args[]) {
SmartTv stv = new SmartTv();
stv.channel = 10;
stv.channelUp();
System.out.println(stv.channel);
stv.displayCaption("Hello, World");
stv.caption = true;
stv.displayCaption("Hello, World");
}
}
// 조상 클래스 Tv
class Tv {
boolean power;
int channel;
void power() {
power = !power;
}
void channelUp() {
++channel;
}
void channelDown() {
--channel;
}
}
class SmartTv extends Tv {
boolean caption;
void displayCaption(String text) {
// caption 변수 값이 만약 true 라면 text 내용 출력
if(caption == true) {
System.out.println(text);
} else {
System.out.println("자막 기능을 켜주세요.");
}
}
}
/*
결과
11
자막 기능을 켜주세요.
Hello, World
*/
조상 클래스 Tv를 상속받고 기능을 추가하기 위해 자식 클래스 SmartTv를 작성했다.
자손 클래스는 조상 클래스를 상속받았기 때문에 인스턴스 생성 시 조상의 멤버도 함께 생성돼 따로 조상 클래스의
인스턴스를 생성하지 않아도 조상의 멤버들을 사용할 수 있다. (코드 재사용, 유지보수 편리)
'JAVA' 카테고리의 다른 글
[JAVA 복습] 캡슐화와 접근 제어자 (0) | 2021.09.02 |
---|---|
[JAVA 복습] 참조변수 super와 조상의 생성자 super() (0) | 2021.09.02 |
[JAVA 복습] 생성자 this() 와 객체 자신을 가리키는 참조변수 this (0) | 2021.08.31 |
[JAVA 복습] 기본 생성자와 매개변수가 있는 생성자 (0) | 2021.08.31 |
[JAVA 복습] 오버로딩 / 오버라이딩 비교 (0) | 2021.08.31 |