추상클래스를 이용한 스택,큐!
public abstract class Memory {
protected int[] array; // protected 접근지정자는 상속받은 자식들만 쓸 수 있음
protected int top;
public Memory(){
array=new int[10];
top=0;
}
public void push(int num){
array[top++]=num;
}
public abstract int pop(); // 추상 메소드
}
public class MyStack extends Memory {
@Override
public int pop() {
return array[--top];
}
}
public class MyQueue extends Memory {
private int front;
public MyQueue (){
front=0;
}
@Override
public int pop() {
return array[front++];
}
}
import java.util.Scanner;
public class MainTest {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int num;
Memory mem; // 부모의 레퍼런스
MyStack ms = new MyStack();
MyQueue mq = new MyQueue();
do{
System.out.print("1.stack\n2.queue\n");
if(sc.nextInt() == 1){
mem = ms; //스택
}else{
mem = mq; // 큐
}
System.out.print("1.push\n2.pop\n");
num = sc.nextInt();
if(num == 1){
System.out.print("데이터를 입력하세요 : ");
mem.push(sc.nextInt());
}
else{
System.out.println("꺼낸 값 : "+mem.pop());
}
}while(true);
}
}