인터페이스

LeeSeungHwan dev·2021년 1월 7일
0

목표
자바의 인터페이스에 대해 학습하세요.

학습할 것 (필수)
인터페이스 정의하는 방법
인터페이스 구현하는 방법
인터페이스 레퍼런스를 통해 구현체를 사용하는 방법
인터페이스 상속
인터페이스의 기본 메소드 (Default Method), 자바 8
인터페이스의 static 메소드, 자바 8
인터페이스의 private 메소드, 자바 9

-인터페이스 정의하는 방법
먼저 인터페이스 부터 알아보자.
인터페이스란 자바에서 일종의 추상클래스로써 추상클래스 처럼 추상메서드를 가지지만
추상클래스보다 추상화 정도가 높아서 추상클래스와는 달리 몸통을 갖춘 일반 메서드 또는
멤버 변수를 구성원으로 가질수 없다.
오직 추상 메서드와 상수만을 멤버로 가질수 있으며 그 외에는 다른 어떠한 요소도 허용하지 않는다.
인터페이스는 밑그림만 그려진 '기본설계도'라 할수 있다.
인터페이스의 장점
-개발시간 단축이 가능하다.
-표준화가 가능하다
-서로 관계없는 클래스들에게 관계를 맺어 줄수 있다.
-독립적인 프로그래밍이 가능하다.
인터페이스의 제약사항
-모든 멤버변수는 public static final 이어야하며 이를 생략가능하다.
-모든 메서드는 public abstract이어야 하며 이를 생략가능하다.

-인터페이스 구현하는 방법
인터페이스 구현 방법
인터페이스의 구현 방법은 implements를 사용한다.

-인터페이스 레퍼런스를 통해 구현체를 사용하는 방법
인터페이스를 구현한 클래스를 인스턴스화 해서 사용할수있다.

-인터페이스 상속
인터페이스는 인터페이스로만 상속받을수 있으며, 클래스와는 다르게 다중상속이 가능하다.

-인터페이스의 기본 메소드 (Default Method), 자바 8
기본메소드는 추상메소드 의 기본적인 구현을 제공하는 메소드로
추상메소드가 아니기때문에 디폴트 메소드가 새로 추가되어도 해당 인터페이스를 구현한 클래스를 변경하지 않아도 된다.
기본메소드는 앞에 default를 붙이며 추상메소드와는 달리 일반메소드처럼{}이 있어야한다.

-인터페이스의 static 메소드, 자바 8
인스턴스 생성과 상관없이 인터페이스 타입으로 호출하는 메소드로
static예약어를 사용하며 접근제어자는 public 이며 생략 할수 있다.

-인터페이스의 private 메소드, 자바 9
자바 9 부터는 인터페이스에 private메소드와 private static메소드를 추가 할수 있게되었다.
이러한 private메소드는 인터페이스 내부의 코드 재사용성을 향상시킨다.
인터페이스에서 private메소드를 사용하는 4가지 규칙이있다.
1.private 인터페이스는 추상될수 없다.
2.private 메소드는 인터페이스 내에서만 사용할수있다.
3.private static 메서드는 다른 static메서드 및 비 static 메소드 내에서 사용 할수가 없다.
4.private 비 static메서드는 private static 메서드 내에서 사용 할수가 없다.

출처
자바의 정석
https://doyoung.tistory.com/21
https://howtodoinjava.com/java9/java9-private-interface-methods/

profile
생각하는 개발자가 되자!

0개의 댓글