Roel Notebook

[Java] 인터페이스(interface)

by Roel Downey
728x90
반응형

인터페이스(interface)

인터페이스를 사용하는 이유? extends를 사용해서 다중 상속을 지원하지 않는다. 그래서 인터페이스를 사용해서 다중 상속을 한다.

 

인터페이스(interface)란? 다른 클래스를 작성할 때 기본이 되는 틀을 제공하면서, 다른 클래스 사이의 중간 매개 역할까지 담당하는 일종의 추상 클래스를 의미한다.

 

그렇지만 인터페이스는 추상 클래스와는 다르다. 인터페이스는 오로지 추상 메소드와 상수만을 포함 할 수있다.

 

인터페이스의 선언

 

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

 단, 클래스와는 달리 인터페이스의 모든 필드는 public static final 이여야 하며, 모든 메소드는 public abstract 이여야 한다.

 

 

인터페이스의 구현

 

class 클래스이름 implements 인터페이스이름 {

}

인터페이스에 여러가지를 만들어 놓고, 모든걸 구현하지 않는다면 abstract 키워드를 사용해서 추상 클래스로 선언한다.

 

 

자바 상속과 구현을 동시에 사용 하는 경우

class 클래스이름 extends 상위클래스이름 implements 인터페이스이름 {

}

인터페이스는 인터페이스로부터만 상속을 받을 수 있고, 여러 인터페이스를 상속 받을 수 있다.

 

 

그럼 인터페이스를 왜 쓸까? 라는 생각을 하게 되었다. 

클래스와 클래스 간의 관계를 인터페이스로 연결하면, 클래스마다 독립적으로 프로그래밍을 할수 있다. 

 

 

 

 

728x90
반응형

블로그의 정보

What doing?

Roel Downey

활동하기