김영한의 자바 강의를 듣고 정리하였습니다.
이전 글에서 이어지는 부분으로 만약 추상 클래스의 모든 메서드가 추상 메서드라면, 자바에서 인터페이스로 사용한다.
인터페이스는 모든 메서드에 대해서 새롭게 구현해야 되기에 상속이 아니라 '구현' 이라고 말한다. 쉽게 생각하면 틀만 만든다고 생각하면 된다. 개발자가 코드를 봤을 때 추상 클래스인지 인터페이스인지 구분하기 쉽기 때문에 인터페이스를 사용하기도 한다.
추상 클래스와 모든게 같다.
다중 상속(부모가 여러개)이 가능하다.
public interface InterfaceAnimal {
void sound(); // public abstract를 생략 가능하다.
void move(); // public abstract를 생략 가능하다.
public class Cat implements InterfaceAnimal {
@Override
public void sound() {
System.out.println("야옹");
}
@Override
public void move() {
System.out.println("고양이 이동");
}
인터페이스로 선언된 클래스 안의 모든 메서드는 어차피 무조건 추상 메서드만 가능하기에 public abstract 를 생략할 수 있다.
자식 클래스에서 implements 로 인터페이스를 구현한다.
- 수업 중 명언
"좋은 프로그램은 제약이 있는 프로그램입니다"