Archive for May, 2010

My Aunt Mary – 내 맘 같지 않던 그 시절

1

Interface, 인터페이스

+인터페이스란?

인터페이스는 일종의 추상클래스이다. 인터페이스는 추상클래스처럼 추상메서드를 갖지만 추상클래스보다 추상화 정도가 높아서 추상클래스와 달리 몸통을 갖춘 일반 메서드 또는 멤버변수를 구성원으로 가질 수 없다. 오직 추상메서드와 상수만 멤버로 가질 수 있으며, 이 외의 다른 어떠한 요소도 허용하지 않는다.

추상클래스를 부분적으로만 완성된 ‘미완성 설계도’라고 한다면, 인터페이스는 구현된 것은 아무 것도 없고, 밑그림만 그려져 있는 ‘기본 설계도’라 할 수 있다.

+인터페이스 작성

interface 인터페이스이름{
    public static final 타입 상수이름 = 값;
    public abstract 메서드이름(매개변수목록);
}

-모든 멤버변수는 public static final 이어야 하며, 이를 생략할 수 있다.
-모든 메서드는 public abstract 이어야 하며, 이를 생략할 수 있다.

+인터페이스의 상속

인터페이스는 인터페이스로부터만 상속받을 수 있으며, 클래스와는 달리 다중상속, 즉 여러 개의 인터페이스로부터 상속을 받는 것이 가능하다.

+인터페이스의 구현

class 클래스이름 implements 인터페이스이름 {
// 인터페이스에 정의된 추상메서드를 구현해야 한다.
}

class A implements BB {
    public void move(){  }
    public void attack(){  }
}

+인터페이스의 장점
-개발시간을 단축시킬 수 있다
-표준화가 가능하다
-서로 관계없는 클래스들에게 관계를 맺어 줄 수 있다
-독립적인 프로그래밍이 가능하다

+인터페이스의 이해

-클래스를 사용하는 쪽과 클래스를 제공하는 쪽이 있다.

-메서드를 사용하는 쪽에서는 사용하려는 메서드의 선언부만 알면된다.(내용은 몰라도 된다.)

출처-Java의 정석