21/06/20 JAVA <interface>

yeoni·2021년 10월 26일

JAVA

목록 보기
14/18

정의

인터페이스는 일종의 추상클래스이며, 일반 추상 클래스보다 추상화 정도가 높다.
인터페이스는 오직 추상메서드와 상수만을 멤버로 가질수있다.
코드로 구현할 작업은 추상메서드로 선언해두고, 반드시 구현하도록 강제하는 것이 인터페이스!
인터페이스에 추상메서드를 선언해두면 하위클래스에서는 인터페이스에 선언된 메서드를 반드시 구현해야함.

요소

디폴트메서드 (default) : 기본 구현을 가지는 메서드로 구현 클래스에서 재정의할 수 있음 (@override)
static(정적) 메서드 : 메서드 호출 시 인터페이스 이름으로 호출 ⇒ 객체 생성 유무에 상관없이 인터페이스 타입으로 사용할 수 있는 메서드임.
private 메서드 : 인터페이스 내부에서만 기능을 제공하기 위해 구현하는 메서드. 인터페이스를 구현한 클래스에서 사용하거나 재정의 불가. ex) private메서드는 인터페이스 내부에서 호출 가능하며, private static 메서드는 인터페이스 내부에서 static이 붙은 정적 메소드 내에서만 사용가능.

작성법

인터페이스는 클래스 작성법과 같으며 class 자리에 interface만 써주면 된다. interface (인터페이스명) { public static final 타입 상수이름 = 값 ; public abstract 메서드이름 (매개변수목록) }
public static final 과 public abstract 는 생략할경우 컴파일시 자동적으로 추가해준다. ex) public abstract int add(int a, intb){} ⇒ int add(int a, int b){}

용도

인터페이스는 클래스와 달리 다중상속이 가능하다. interface (자손인터페이스명) extends (부모인터페이스1) , (부모인터페이스2) {} 이런식으로 콤마 (,)를 붙혀 다중상속이 가능하며 조상 인터페이스 1,2의 정의된 멤버를 모두 상속 받을수 있다.
만약 클래스에서 인터페이스를 상속 받는다면 그때는 extends 키워드를 쓰지않고 implements 키워드를 사용하여 상속을받을 수 있다. class (클래스명) implements (인터페이스명)
클래스도 다중상속이 가능함. 이경우는 자손 클래스가 부모클래스 하나를 상속 할수있으며 , 동시에 인터페이스도 상속 할수있는경우다.class (클래스명) exntends (부모클래스) implements (부모인터페이스) {}

인터페이스의 장점

독립적인 프로그래밍이 가능하다.
서로 관계없는 클래스들에게 관계를 맺어 줄 수 있다.
표준화가 가능하다.
개발시간을 단축시킬 수 있다.
어떤 데이터베이스를 사용하더라도 개발할 수 있게 도와줌.

profile
24시간이 부족한 개발자

0개의 댓글