이번에는 상속과 인터페이스를 같이 사용한 경우를 알아보자.
간단히, 자료구조의 하나인 를 구현한 예제이다.

Shelf 클래스

package bookshelf;

import java.util.ArrayList;

public class Shelf {
    protected ArrayList<String> shelf;

    public Shelf() {
        shelf = new ArrayList<String>();
    }

    public ArrayList<String> getShelf() {
        return shelf;
    }

    public int getCount() {
        return shelf.size();
    }

}
  • 객체가 생성될 때 배열객체를 생성 해 shelf 에 저장한다.

Queue 인터페이스

package bookshelf;

public interface Queue {
    void enQueue(String title);
    String deQueue();
    int getSize();
}
  • 인터페이스이므로 구현부가 없다. -> default 메서드는 생성가능.

BookShelf (인터페이스와 상속을 모두 구현)

package bookshelf;

public class BookShelf extends Shelf implements Queue {

    @Override
    public void enQueue(String title) {
        shelf.add(title);
    }

    @Override
    public String deQueue() {
        return shelf.remove(0);
    }

    @Override
    public int getSize() {
        return getCount();
    }
}
  • 우선 인터페이스를 상속받았기에 Queue 에 있는 메서드들을 모두 구현했다.
  • Shelf 의 변수와 메서드를 사용할 수 있다.

테스트

package bookshelf;

public class BookShelfTest {

    public static void main(String[] args) {
        Queue shelfQueue = new BookShelf();
        shelfQueue.enQueue("태백산맥 1");
        shelfQueue.enQueue("태백산맥 2");
        shelfQueue.enQueue("태백산맥 3");

        System.out.println(shelfQueue.deQueue());
        System.out.println(shelfQueue.deQueue());
        System.out.println(shelfQueue.deQueue());

    }

}
  • 순서대로 태백산맥 1, 2, 3 을 배열에 넣고, 넣은 순서대로 하나씩 제거한다.

출처: do it 자바프로그래밍

'프로그래밍 > Java' 카테고리의 다른 글

String 클래스  (0) 2019.12.10
기본클래스 - Object  (0) 2019.12.09
인터페이스 - 디폴트메서드, 정적메서드  (0) 2019.12.08
jdk환경변수 설정하기 (feat. window10)  (0) 2019.12.08
인터페이스와 다형성.  (0) 2019.12.07
블로그 이미지

파니동

,