Interface

똘이주인·2021년 5월 18일
0

인터페이스(interface)

  • 서로 관계가 없는 물체들이 상호 작용을 하기 위해서 사용하는 장치나 시스템

  • 인터페이스(interface)는 일종의 추상클래스이며 추상클래스보다 추상화 정도가 더 높다.

  • 추상클래스를 미완성 설계도로 비유한다면 인터페이스는 기본 설계도에 비유할 수 있다.

  • 인터페이스는 다른 클래스 작성에 도움을 주거나 서로 무관한 클래스들에게 관계를 맺어줄 목적으로 사용

  • 인터페이스 특징

    • class 키워드 대신 interface 키워드를 사용하여 정의

    • 인스턴스 생성 불가

    • 모든 멤버변수에는 public static final 제어자가 붙음 (생략 가능)

    • 모든 메서드는 public abstract 제어자가 붙음 (생략 가능)

      // 인터페이스 생성
      interface [인터페이스명] {
      
      	public static final 타입 상수명 =;
      	public abstract 메서드명(매개변수);
      
      }
      

인터페이스 장점

1. 개발시간 단축

  • 메서드 내용과 관계없이 선언부만 알면 개발이 가능
  • 양쪽에서 동시에 개발 진행 가능

2. 표준화 가능

  • 기본 틀을 인터페이스로 작성
  • 일관되고 정형화된 프로그램 개발이 가능

3. 서로 무관한 클래스들에게 관계를 맺어줌

  • 하나의 인터페이스를 공통으로 구현하도록 하여 관계를 맺어줌

4. 독립적인 프로그래밍이 가능

  • 인터페이스를 이용하면 클래스 간의 관계를 간접적으로 구성하는 것이 가능
  • 한 클래스의 변경이 다른 클래스에 영향을 미치지 않는 독립적인 프로그래밍이 가능

인터페이스 특징

클래스는 오직 하나의 수퍼 클래스만 가질 수 있었으나 인터페이스는 여러 개를 가질 수 있다. 그렇기 때문에 다중 상속의 구현을 도와준다.

interface MyInterface {
    void myMethod();
}

interface YourInterface {
    void yourMethod();
}

class MadPlay implements MyInterface, YourInterface {

    @Override
    public void myMethod() {
        // do something
    }

    @Override
    public void yourMethod() {
        // do something
    }
}

0개의 댓글