추상 클래스와 마찬가지로 추상된 틀을 만들어 개발의 도움을 주는 것
1) 클래스가 아니므로 class 키워드 대신 interface 사용
2) 추상메서드와 상수만 가진다
->public abstract가 붙은 추상메서드로 취급 (생략 가능)
->public static final이 붙은 상수로 취급 (생략 가능)
3) 객체 생성 불가능
-> 단, 참조타입으로는 가능
4) 코드의 통일성이 향상됨
5) 다중 구현 가능
그렇다면 도대체 이게 추상클래스와 다른 게 뭘까?
추상 클래스 : 일반 메서드와 변수 가질 수 있다. / 다중 상속 불가능
인터페이스 : 추상 메서드와 상수만 가진다 / 다중 구현 가능
즉, 인터페이스는 여러 클래스에서 공통으로 사용하는 기능을 정의하는 데 사용되며, 추상 클래스는 클래스들 간의 공통된 특성을 정의하는 데 사용된다.
굳이 굳이 추상클래스가 있음에도 인터페이스를 사용하는 이유는 '다중 구현' 때문인 경우가 많다.
추상클래스를 상속받게 되면 다른 클래스를 상속 받을 수 없는 경우가 존재한다. 이런 경우를 해결하고자 인터페이스를 사용한다.
- 구현의 강제성 부여 : 인터페이스를 구현하는 서브크래스에서 메서드 정의 필수
- 모듈의 교체 용이 : 특정 서브클래스가 추가되더라도 공통 코드 변경 필요없이 사용 가능
- 상속 관계가 없는 객체끼리 관계 부여 가능 : 다형성 활용 가능
- 개발 기간 단축 : 모듈 간 독립적 프로그래밍 가능
인터페이스 및 서브클래스 정의
나중에 수정할게용 .. 급한 것부터 해야즤