본문 바로가기

Knowledge Wiki/Java

JAVA 인터페이스

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