프로그래밍언어/Java
인터페이스란?
D.Y
2016. 1. 31. 23:29
반응형
인터페이스(interface)
인터페이스는 일종의 추상클래스이다. 인터페이스는 추상클래스처럼 추상메서드를 갖지만 추상클래스보다 추상화 정도가 높아서 추상클래스와 달리 몸통을 갖춘
일반 메서드 또는 멤버변수를 구성원으로 가질수 없다. 오직 추상메서드와 상수만을 멤버로 가질 수 있다.
인터페이스는 구현된 것은 아무 것도 없고 밑그림만 그려져 있는 '기본 설계도' 라 할 수 있다.
- 인터페이스 작성
interface 인터페이스이름 {
public static final 타입 상수이름 = 값;
public abstract 메서드이름(매개변수목록);
} - 모든 멤버변수는 public static final 이어야 하며, 이를 생략 할 수 있다.
- 모든 메서드는 public abstract 이어야 하며, 이를 생략 할 수 있다.
- ex)
interface CardService {
int clover = 1; // public static final int clover = 1;
int diamond = 2; // public static final int diamond = 1;
public String getCardKind(); // public abstract String getCardKind();
}
인터페이스의 상속
인터페이스는 인터페이스로부터만 상속받을 수 있으며, 클래스와는 달리 다중상속, 즉 여러 개의 인터페이스로부터 상속을 받는 것이 가능하다.
인터페이스는 인터페이스로부터만 상속받을 수 있으며, 클래스와는 달리 다중상속, 즉 여러 개의 인터페이스로부터 상속을 받는 것이 가능하다.
ex)
interface Movable {
void move(int x, int y); // 지정된 위치로 이동하는 기능
}
void move(int x, int y); // 지정된 위치로 이동하는 기능
}
interface Attackable {
void attack(Unit u); //지정된 대상을 공격하는 기능
}
void attack(Unit u); //지정된 대상을 공격하는 기능
}
interface Fightable extends Movable, Attackable {
}
인터페이스 구현
ex) Fighter 클래스는 Fightable 인터페이스를 구현한다.
class Fighter implements Fightable {
public void move(int x, int y);
public void attack(Unit u);
}
public void move(int x, int y);
public void attack(Unit u);
}
상속과 구현을 동시에 할 수도 있다.
인터페이스의 장점
- 개발시간을 단축시킬 수 있다.
- 표준화가 가능하다.
- 서로 관계없는 클래스들에게 관계를 맺어 줄 수 있다.
- 독립적인 프로그래밍이 가능하다.
반응형