Java - 인터페이스

춤추는개발자·2022년 11월 24일
0

Java 정리

목록 보기
18/59

인터페이스

  • 추상 메서드의 집합을 인터페이스라고 한다.
  • 구현된 것이 전혀 없는 설계도. 모든 멤버가 public 이다.
  • 상수는 포함할 수 있다. 인스턴스 변수, 클래스 변수는 가질 수 없다.
  • 인터페이스는 아래와 같이 선언할 수 있다.
interface 인터페이스이름 {
        public static final 타입 상수변수이름 =;
        public abstract 메서드이름(매개변수);
  • 인터페이스 내에 추상 메서드는 public abstract를 생략해서 사용할 수 있다. 그 이유는 항상 인터페이스 내의 메서드는 public abstract이기 때문이다. 상수도 마찬가지로 항상 public static final이기 때문에 생략 가능하다.
  • 인터페이스의 조상은 인터페이스만 가능 합니다. (object가 최고 조상이 아닙니다.)
  • 다중 상속이 가능하다. 그 이유는 추상 메서드는 충동해도 문제가 없기 때문이다.

인터페이스와 추상 클래스의 차이점

  • 일반 클래스인데 추상 메서드를 가진 클래스가 추상 클래스이다. 인터페이스는 추상 메서드만 가지고 있다. (그 외에 다른 것들도 있지만 인터페이스의 핵심은 추상 메서드만 가지고 있는 것이다. 기능적으로 보완하기 위해서 상수, static 메서드, default 메서드가 추가 되었다.)
  • 인터페이스는 인스턴스 변수, 인스턴스 메서드, 생성자를 가질 수 없다.
  • 추상 클래스는 일부가 미완성인것이고 인터페이스는 전부 미완성이다.

인터페이스의 구현

  • 인터페이스에 정의된 추상 메서드를 완성하는 것 그것을 인터페이스 구현이라고 한다.
  • 아래의 코드는 인터페이스를 구현하는 코드이다.
class 클래스이름 implements 인터페이스이름 { 
    // 여기에 인터페이스에 정의된 추상메서드를 모두 구현한다. 
}
  • 위의 코드를 보면 추상 클래스에서는 추상 메서드를 구현할때 구현 클래스에 extends를 사용하였지만 인터페이스는 구현 클래스에 implements를 사용한다.
  • 만약 구현 클래스에 일부만 구현하는 경우네는 클래스 앞에 abstract를 붙여야 한다.

인터페이스를 이용한 다형성

  • 인터페이스 타입 매개변수는 인터페이스 구현한 클래스의 인스턴스만 가능하다.
  • 인터페이스를 메서드의 리턴타입으로 지정할 수 있다.
  • 인터페이스를 구현한 클래스의 인스턴스를 반환한다는 뜻 입니다.

인터페이스의 장점

  • 두 인스턴스간의 연결,대화,소통을 돕는 중간 역할을 한다.
  • 선언(설계)와 구현을 분리시킬 수 있게 합니다.
  • 개발 시간을 단축할 수 있다.
  • 변경에 유리한 유연한 설계가 가능하다.
  • 표준화가 가능하다.
  • 서로 관계없는 클래스들을 관계를 맺어줄 수 있다.

0개의 댓글