티스토리 뷰

반응형

⊙ 문제

 

다음과 같이 Human 인터페이스와 Human 구현 클래스인 Worker가 있다.

 

interface Human {
    void eat();
}

class Worker implements Human {
    public void eat() {
        System.out.println("빵을 먹습니다.");
    }
}

Worker 클래스는 이미 다른 프로젝트에서 사용 중이다. 그런데 Human 인터페이스를 구현한 Student 클래스에는 print() 메서드가 필요하다. 또 Human 타입으로 사용할 때도 echo() 메서드가 필요하다. 따라서 다음과 같은 테스트 프로그램을 실행하고자 한다. Human 인터페이스, Worker 클래스에 수정할 부분이 있으면 수정하고, Student 클래스도 작성하시오.

 

public class HumanTest {
    public static void main(String[] args) {
        Human.echo();

        Student s = new Student(20);
        s.print();
        s.eat();

        Human p = new Worker(); // 책에는 Person p = new Person();이라고 나와있는데
        p.print();              // 오타라고 생각해 문제에 맞게끔 임의로 수정했다.
        p.eat();
    }
}

 


 

⊙ 문제 접근 과정

 

우선 print() 메서드와 ehco() 메서드를 만들어야겠다고 생각했다.

그 후 Student 클래스를 만들어주었다.


 

⊙ 문제 풀이

 

interface Human {
    void eat();
    void print();
    static void echo() {
        System.out.println("야호!!!");
    }
}

class Worker implements Human {
    public void eat() {
        System.out.println("빵을 먹습니다.");
    }
    public void print() {
        System.out.println("인간입니다.");
    }
}

class Student implements Human {
    int age;
    Student(int age) {
        this.age = age;
    }
    public void print() {
        System.out.println(age+"세의 학생입니다.");
    }
    @Override
    public void eat() {
        System.out.println("도시락을 먹습니다.");
    }
}

public class HumanTest {
    public static void main(String[] args) {
        Human.echo();

        Student s = new Student(20);
        s.print();
        s.eat();

        Human p = new Worker();
        p.print();
        p.eat();
    }
}

 


⊙ 결과

 

 


⊙ 마무리

 

 

NONE

 

좋아요 로그인하지 않아도 누를 수 있습니다!

 

728x90
반응형
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/04   »
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 27
28 29 30
글 보관함