6.1 인터페이스 개요와 인터페이스 정의
"인터페이스" 는 추상 메소드와 상수만으로 구성된 추상 클래스라 할 수 있다.
[Form]
public interface 인터페이스[extends 인터페이스 이름]
{
// 상수선언
// 메소드 선언
}
6.2 인터페이스의 사용
[Form]
[public/final/abstract] class 클래스이름 extends 상위클래스 implements 인터페이스 이름[,인터페이스]
{
6.2 인터페이스의 사용
[Form]
[public/final/abstract] class 클래스이름 extends 상위클래스 implements 인터페이스 이름[,인터페이스]
{
// 멤버변수 선언
// 생성자
// 메소드 선언
// 인터페이스에 선언된 모든 메소드를 오버라이딩하여
// 선언하여야 한다.
// 생성자
// 메소드 선언
// 인터페이스에 선언된 모든 메소드를 오버라이딩하여
// 선언하여야 한다.
}
// InterfaceTest.java
interface IStack {
void push(int item);
int pop();
}
class FixedStack implements IStack {
private int stack[];
private int tos;
FixedStack(int size) {
stack = new int[size];
tos = -1;
}
public void push(int item) {
if (tos==stack.length-1)
System.out.println("Stack Full");
else
stack[++tos] = item ;
}
public int pop() {
if ( tos < 0 ) {
System.out.println("stack empty");
else
return stack[tos--];
}
}
class InterfaceTest {
public static void main(String args[]) {
FixedStack mystack1 = new FixedStack(10);
FixedStack mystack2 = new FixedStack(5);
for( int i=0 ; i<10 ; i++)
mystack1.push(i);
for( int i=0 ; i<5 ; i++)
mystack2.push(i);
System.out.println("stack : mystack1");
for( int i=0;i<10;i++)
System.out.print(mystack1.pop() + " ");
System.out.println();
System.out.println("stack : mystack2");
for(int i=0;i<5;i++)
System.out.print(mystack2.pop() + " ");
}
}
// InterfaceTest.java
interface IStack {
void push(int item);
int pop();
}
class FixedStack implements IStack {
private int stack[];
private int tos;
FixedStack(int size) {
stack = new int[size];
tos = -1;
}
public void push(int item) {
if (tos==stack.length-1)
System.out.println("Stack Full");
else
stack[++tos] = item ;
}
public int pop() {
if ( tos < 0 ) {
System.out.println("stack empty");
else
return stack[tos--];
}
}
class InterfaceTest {
public static void main(String args[]) {
FixedStack mystack1 = new FixedStack(10);
FixedStack mystack2 = new FixedStack(5);
for( int i=0 ; i<10 ; i++)
mystack1.push(i);
for( int i=0 ; i<5 ; i++)
mystack2.push(i);
System.out.println("stack : mystack1");
for( int i=0;i<10;i++)
System.out.print(mystack1.pop() + " ");
System.out.println();
System.out.println("stack : mystack2");
for(int i=0;i<5;i++)
System.out.print(mystack2.pop() + " ");
}
}
6.3 인터페이스의 상속
[Form]
public interface 인터페이스이름 extends 인터페이스이름[,인터페이스 이름,...]
{
상수선언
메소드 선언
}
6.4 인터페이스의 참조
interface A {
int CONS=5;
public void display(String s);
}
class A1 implements A {
int a = 10;
public void display(String s) {
System.out.println("display 메소드 구현"+s);
}
}
interface A {
int CONS=5;
public void display(String s);
}
class A1 implements A {
int a = 10;
public void display(String s) {
System.out.println("display 메소드 구현"+s);
}
}