1. 인터페이스는 추상 메서드의 집합 (프로그래밍 관점)
인터페이스: 인스턴스 변수를 가질 수 없고 추상 메서드'만' 모아놓음 (JDK 1.8 이전까지는..)
class MyClass implements MyInterface {}
추상클래스: 인스턴스 변수를 가질 수 있고 추상 메서드 + 구현 메서드를 가질 수 있음
class MyClass extends MyAbstractClass {}
2. 인터페이스는 다중 상속이 가능
인터페이스는 추상메서드 집합이기 때문에 충돌에서 자유롭다. 추상메서드는 구현체가 없으니까.
참고로 추상클래스는 단일 상속만 가능하다.
3. 인터페이스도 추상클래스처럼 구현클래스의 부모 역할을 한다.
4. 인터페이스의 장점
1) 두 대상(객체) 간의 '연결, 대화, 소통'을 돕는 '중간 역할'을 한다.
2) A클래스가 B클래스를 사용할 때, 인터페이스 덕분에 B가 변경되어도 A는 안바꿀 수 있게 된다.
즉, 느슨한 결합이다.
변경에 유리한 유연한 설계가 가능하다.
3) 개발 시간을 단축할 수 있다?!
A클래스가 B클래스를 사용할 때,
B가 아직 구현되어 있지 않아도 A는 인터페이스를 참조하여 개발을 진행할 수 있다.
4) 표준화가 가능하다.
ex) JDBC
5) 서로 관계없는 클래스들의 관계를 맺어줄 수 있다.
특정 속성을 공유하는 클래스들에게서 해당 속성을 따로 빼내어 인터페이스로 활용할 수 있다.
반응형
'Knowledge Wiki > Java' 카테고리의 다른 글
JAVA 내부 클래스 (0) | 2021.11.30 |
---|---|
JAVA 디폴트 메서드 (0) | 2021.11.30 |
JAVA 다형성 (0) | 2021.11.26 |
JAVA 클래스, 클래스패스 (0) | 2021.11.26 |
JAVA 상속 (0) | 2021.11.26 |