반응형
[쉽게 배우는 자바 프로그래밍]
Chapter 07. 추상 클래스와 인터페이스
프로그래밍 문제
7. 다음과 같이 Human 인터페이스와 Human 구현 클래스인 Worker가 있다.
1
2
3
4
5
6
7
8
9
|
interface Human {
void eat();
}
class Worker implements Human {
public void eat() {
System.out.println("빵을 먹습니다.");
}
}
|
Worker 클래스는 이미 다른 프로젝트에서 사용 중이다. 그런데 Human 인터페이스를 구현한 Student 클래스에는 print() 메서드가 필요하다. 또 Human 타입으로 사용할 때도 echo() 메서드가 필요하다. 따라서 다음과 같은 테스트 프로그램을 실행하고자 한다. Human 인터페이스, Worker 클래스에 수정할 부분이 있으면 수정하고, Student 클래스도 작성하시오.
1
2
3
4
5
6
7
8
9
10
11
12
13
|
public class HumanTest {
public static void main(String[] args) {
Human.echo();
Student s = new Student(20);
s.print();
s.eat();
Person p = new Person();
p.print();
p.eat();
}
}
|
야호!!! 학생입니다. 도시락을 먹습니다. 인간입니다. 빵을 먹습니다. |
[ Human.java ]
1 2 3 4 5 6 7 8 9 10 | public interface Human { void eat(); void print(); static void echo() { System.out.println("야호!!!"); } } |
[ Student.java ]
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | public class Student implements Human { int i; Student() { } public Student(int i) { this.i = i; } @Override public void eat() { System.out.println("도시락을 먹습니다."); } @Override public void print() { System.out.println("학생입니다."); } } |
[ Worker.java ]
1 2 3 4 5 6 7 8 9 10 11 12 13 | public class Worker implements Human { @Override public void eat() { System.out.println("빵을 먹습니다."); } @Override public void print() { System.out.println("인간입니다."); } } |
[ HumanTest.java ]
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | public class HumanTest { public static void main(String[] args) { Human.echo(); Student s = new Student(20); s.print(); s.eat(); Worker w = new Worker(); w.print(); w.eat(); } } |
반응형
'JAVA 자바 > [쉽게 배우는 자바 프로그래밍] _프로그래밍 문제' 카테고리의 다른 글
Chapter 07. 추상 클래스와 인터페이스 _ 프로그래밍 06 (0) | 2019.10.31 |
---|---|
Chapter 07. 추상 클래스와 인터페이스 _ 프로그래밍 05 (0) | 2019.10.27 |
Chapter 07. 추상 클래스와 인터페이스 _ 프로그래밍 04 (0) | 2019.10.27 |
Chapter 07. 추상 클래스와 인터페이스 _ 프로그래밍 03 (2) | 2019.10.26 |
Chapter 07. 추상 클래스와 인터페이스 _ 프로그래밍 02 (0) | 2019.10.26 |