인터페이스(interface) (1)

1. 인터페이스란?


  • 일종의 추상클래스
  • 추상메서드와 상수만을 멤버로 가질 수 있음
    (몸통을 갖춘 일반 메서드 또는 멤버변수를 구성원으로 가질 수 없음)

2. 인터페이스의 작성


  • 모든 멤버변수는 public static final이어야 하며, 이를 생략할 수 있다.
  • 모든 메서드는 public abstract이어야 하며, 이를 생략할 수 있다.
    (생략된 제어자는 컴파일 시 컴파일러가 자동적으로 추가)
    *JDK1.8부터 인터페이스에 staticaptjemdhk default메서드의 추가를 허용
    Ex)
    interface 인터페이스이름 {
        public static final 타입 상수이름 =;
        public abstract 메서드이름 (매개변수목록);
    }

3. 인터페이스의 상속


  • 인터페이스는 인터페이스로부터만 상속받을 수 있음
  • 클래스와 달리 다중상속 가능
    Ex) interface Fightable extends Movable, Attackable { }

4. 인터페이스의 구현


  • 인터페이스는 자신에 정의된 추상메서드의 몸통을 만들어주는 클래스를 작성해야 함
  • 만일 구현하는 인터페이스의 메서드 중 일부만 구현한다면, abstract를 붙여서 추상클래스로 선언해야 함
    *인터페이스의 이름에는 주로 'able'로 끝나는데, 어떠한 기능 또는 행위를 하는데 필요한 메서드를 제공한다는 의미를 강조하기 위해서임
    Ex)
     abstract class 클래스이름 implements 인터페이스이름 {
        // 인터페이스에 정의된 추상메서드 구현
     }

5. 인터페이스를 이용한 다중상속


  • 인터페이스는 static상수만 정의할 수 있으므로 조상클래스의 멤버변수와 충돌하는 경우는 거의 없고 충돌된다 하더라도 클래스 이름을 붙여서 구분이 가능

java의 정석 chapter7

좋은 웹페이지 즐겨찾기