본문 바로가기

Backend/Java

[인프런] 인터페이스, interface, 개념

예제로 공부하는 Java 100 문제풀이 Part.4

 

- 인터페이스란 무엇인가?
사용자간 또는 컴퓨터간 통신이 가능하도록 해주는 디바이스나 프로그램.
즉, "규격"을 인터페이스라고 할 수 있고, 인터페이스는 하나의 "표준화"를 제공하는 것이라 할 수 있다.

- 추상 클래스 vs 인터페이스
추상 클래스와 거의 비슷하나 그 추상화 정도가 더 높다.
따라서 일반 메서드 멤버 필드(변수)를 가질 수 없다.
이러한 점들이 추상 클래스와 인터페이스간 가장 큰 차이점 중 하나이다.

- 자바에서의 인터페이스 문법
표준화 및 규격을 인터페이스로 제공한다.
따라서 어떤 클래스가 해당 인터페이스를 사용(상속)한다면 인터페이스에 선언되어져 있는 메서드를 구현해야 한다.

인터페이스는 class 키워드를 사용하지 않고 별도의 interface 키워드를 사용한다.

class → extends    interface → implements

추상 클래스와 같이 메서드의 구체적인 내용은 기술되어져 있지 않으므로 인터페이스를 상속받은 클래스에서 재정의(오버라이딩)하여 사용해야 한다.

 

- 상속 vs 구현

클래스와 인터페이스 이 둘의 가장 큰 차이점 중 하나는 "상속"이다.

자바에서 클래스는 "단일 상속"만 가능하지만, 인터페이스는 "다중 상속"이 가능하다.

그러나 인터페이스에서는 extends 표현을 쓰지 않고 "구현"의 의미를 강조하는 implements 키워드를 사용하여 다중 상속을 구현한다.