반응형
[쉽게 배우는 자바 프로그래밍]
Chapter 06. 상속
프로그래밍 문제
5. 다음 표를 참고해 Phone, Phone의 자식 클래스 Telephone, Telephone의 자식 클래스 SmartPhone을 작성하고, 테스트 프로그램도 작성하시오.
Phone | Telephone | SmartPhone | |
필드 | protected String owner | private String when | private String game |
메서드 | void talk() | void autoAnswering() | void playGame() |
① 각 클래스에 모든 필드를 초기화하는 생성자를 추가한다.
② 각 클래스의 메소드를 구현한다. talk()는 owner가 통화 중, autoAnswering()은 owner가 부재 중이니 when에 전화 요망, playGame()은 owner가 game 게임 중이라는 메세지를 출력한다.
③ Phone, Telephone, Smartphone 객체로 Phone 타입 배열 변수에 대입한다. 그리고 반복문과 조건문으로 실제 타입을 조사한 후 Phone 타입이면 talk(), Telephone 타입이면 autoAnswering(), Smartphone 타입이면 playGame()을 호출한다.
1
2
3
4
5
6
7
8
9
10
|
public class PhoneTest {
public static void main(String[] args) {
Phone[] phones = { new Phone("황진이"), new Telephone("길동이", "내일"), new Smartphone("민국이", "갤러그") };
// 코드 추가
}
}
|
황진이가 통화 중이다.
길동이가 없다. 내일 전화 줄래.
민국이가 갤러그 게임을 하는 중이다.
[ Phone.java ]
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
public class Phone {
protected String owner;
public Phone() {
}
public Phone(String owner) {
this.owner = owner;
}
public void talk() {
System.out.println(owner + "가 통화중이다.");
}
}
|
[ Telephone.java ]
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
public class Telephone extends Phone {
private String when;
public Telephone() {
}
public Telephone(String owner, String when) {
this.owner = owner;
this.when = when;
}
public void autoAnswering() {
System.out.println(owner + "가 없다. " + when + " 전화 줄래.");
}
}
|
[ Smartphone.java ]
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
|
public class Smartphone extends Telephone {
private String game;
public Smartphone() {
}
public Smartphone(String owner, String game) {
this.owner = owner;
this.game = game;
}
public String getGame() {
return game;
}
public void setGame(String game) {
this.game = game;
}
public void playGame() {
System.out.println(owner + "가 " + game + " 게임을 하는 중이다.");
}
}
|
[ PhoneTest.java ]
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
|
public class PhoneTest {
public static void main(String[] args) {
Phone[] phones = { new Phone("황진이"), new Telephone("길동이", "내일"), new Smartphone("민국이", "갤러그") };
for (Phone phone : phones) {
if (phone instanceof Smartphone) {
((Smartphone) phone).playGame();
} else if (phone instanceof Telephone) {
((Telephone) phone).autoAnswering();
} else if (phone instanceof Phone) {
((Phone) phone).talk();
}
}
}
}
|
반응형
'JAVA 자바 > [쉽게 배우는 자바 프로그래밍] _프로그래밍 문제' 카테고리의 다른 글
Chapter 07. 추상 클래스와 인터페이스 _ 프로그래밍 01 (0) | 2019.10.26 |
---|---|
Chapter 06. 상속 _ 프로그래밍 06 (0) | 2019.10.23 |
Chapter 06. 상속 _ 프로그래밍 04 (0) | 2019.10.22 |
Chapter 06. 상속 _ 프로그래밍 03 (0) | 2019.10.21 |
Chapter 06. 상속 _ 프로그래밍 02 (0) | 2019.10.20 |