반응형
- 상속
- 자식(하위) 클래스가 부모(상위) 클래스의 멤버를 물려받는 것
- 자식 부모를 선택해서 물려받음
- 상속 대상: 부모의 필드와 메서드
- 상속의 효과
- 부모 클래스를 재사용해서 자식 클래스를 빨리 개발할 수 있다.
- 반복의 코드의 중복을 줄여준다.
- 유지 보수의 편리성을 제공해 준다.
- 객체의 다형성을 구현을 수 있다.
- 상속 대상의 제한
- 부모 클래스의 private 접근을 갖는 필드와 메서드는 제외됨
- 부모 클래스가 다른 패키지에 있을 경우, default 접근을 갖는 필드와 메서드로 제한됨
- 실습
1. 부모 클래스 생성
public class CellPhone {
String model;
String color;
void powerOn() { System.out.println("전원을 켭니다.");}
void powerOff() { System.out.println("전원을 끕니다.");}
void bell() {System.out.println("벨이 울립니다.");}
void sendVoice(String message) {System.out.println("자기 : " + message);}
void receiveVoice(String message) {System.out.println("상대방 : " + message);}
void hangUp() { System.out.println("전화를 끕니다.");}
}
2. 상속받을 자식 클래스 생성
public class DmbCellPhone extends CellPhone {
int channel;
DmbCellPhone(String model, String color, int channel) {
this.model = model;
this.color = color;
this.channel = channel;
}
void turnOnDmb() {
System.out.println("채널 " + channel + "번 DMB 방송 수신을 시작합니다.");
}
void changeChannelDmb(int channel) {
this.channel = channel;
System.out.println("채널 " + channel + "번으로 바꿉니다.");
}
void turnOffDmb() {
System.out.println("DMB 방송 수신을 멈춥니다.");
}
}
3. 실행 클래스를 만들어서 실행
public class DmbCellPhoneExample {
public static void main(String[] args) {
DmbCellPhone dmbCellPhone = new DmbCellPhone("자바폰", "검정", 10);
System.out.println("모델 : " + dmbCellPhone.model);
System.out.println("색상 : " + dmbCellPhone.color);
System.out.println("채널 : " + dmbCellPhone.channel);
dmbCellPhone.powerOn();
dmbCellPhone.bell();
dmbCellPhone.sendVoice("여보세요");
dmbCellPhone.receiveVoice("안녕하세요! 저는 홍길동인데요");
dmbCellPhone.sendVoice("아~ 예 반갑습니다.");
dmbCellPhone.hangUp();
dmbCellPhone.turnOnDmb();
dmbCellPhone.changeChannelDmb(12);
dmbCellPhone.turnOffDmb();
}
}
필드와 메서드를 다 상속받을 수 있기 때문에 실행하면 다음과 같은 결과가 나온다.
반응형
'study > JAVA' 카테고리의 다른 글
부모 생성자 호출(super(...)) (0) | 2022.02.24 |
---|---|
어노테이션(Annotation) (0) | 2022.02.22 |
Getter와 Setter (0) | 2022.02.18 |
접근 제한자( Access Modifier) (0) | 2022.02.18 |
상수(static final) (0) | 2022.02.14 |
댓글