인터페이스
- 클래스가 따라야할 최소한의 공통 규칙을 정의하는 역할을 한다.
인터페이스를 사용하는 이유
- 개발자마다 서로 다른 방식으로 메서드를 만든다면 일관성이 깨질 수 있다.
-> 인터페이스를 사용하면 일관성을 유지하면서 클래스가 고유한 특색을 확장할 수 있도록 도와준다.
인터페이스 적용
- 클래스에서
implements 키워드로 인터페이스를 활용할 수 있다.
- 인터페이스로 구현한 클래스를 구현체라고 한다.
인터페이스 다중구현(multi-implementation)
implements 키워드로 다수의 인터페이스를 구현할 수 있다.
- 한 개의 클래스가 여러 인터페이스를 구현한 경우 다중구현이라고 한다.
interface Animal {
void eat();
}
interface Flyable {
void fly();
}
class Bird implements Animal, Flyable {
public void eat() {
System.out.println("새가 먹이를 먹습니다.");
}
public void fly() {
System.out.println("새가 하늘을 납니다.");
}
public void land() {
System.out.println("새가 착륙합니다.");
}
}
public class Main {
public static void main(String[] args) {
Bird bird = new Bird();
bird.eat();
bird.fly();
bird.land();
}
}
인터페이스 다중상속(multi-ingeritance)
extends 키워드로 상속을 구현할 수 있다.
interface Animal {
void eat();
}
interface Flyable {
void fly();
}
interface FlyableAnimal extends Animal, Flyable {
void land();
}
class Bird implements FlyableAnimal {
public void eat() {
System.out.println("새가 먹이를 먹습니다.");
}
public void fly() {
System.out.println("새가 하늘을 납니다.");
}
public void land() {
System.out.println("새가 착륙합니다.");
}
}
public class Main {
public static void main(String[] args) {
Bird bird = new Bird();
bird.eat();
bird.fly();
bird.land();
}
}
인터페이스에 변수를 선언하는 경우
- 변수 선언시 형식에 관계 없이 자동으로 상수로 선언된다.
public static final로 선언된다.
- 인터페이스는 표준의 역할이므로 변수선언은 최소화하는 것이 좋다.
public interface Config {
int POPULATION = 100;
}