단단히

인터페이스 본문

Java/개념 정리

인터페이스

이게아닌데 2022. 6. 13. 11:41

인터페이스와 추상 클래스는 비슷하다. 그래서 이 둘의 차이를 비교해가면서 개념을 이해한다.

회사에서는 커스텀 메서드와 추상 클래스보다 인터페이스 사용이 더 많다고 한다.

 

인터페이스는 개발 코드와 객체가 서로 통신하는 접점 역할을 한다.

인터페이스는 자바 프로그램의 기본단위이다.

인터페이스는 약속이다. 적절한 예시는 호출벨을 누르면 직원이 찾아오는 예시이다. 이때 호출벨이 인터페이스에 속한다. 

 

인터페이스는 추상 클래스보다 더욱 추상화된 것이다. 즉, 제약이 더 강하다.

추상 클래스는 일반 클래스와 같이 생성자, 메서드, 클래스를 선언할 수 있고

추상 메서드까지 포함된 클래스이다.

즉, 추상 메서드가 존재하는 클래스는 추상 클래스가 된다.

 

그러나 인터페이스정적(static) 필드만 가질 수 있다. 또한 객체로 생성할 수 없다.

메서드를 생성할 수 있으나 본체를 정의할 수 없다.

8 버전부터 추가적으로 메서드를 선언할 수 있는데 추상 메서드(디폴트(default), 정적(static) 메서드, 일회성(내장) 메서드)를 만들 수 있다.

 

추상 클래스와 인터페이스의 가장 큰 차이는 다중 상속이다.

클래스를 상속받을 때 extends 뒤에 하나의 부모 클래스 명만 넣을 수 있다.

하지만 인터페이스는 implements 뒤에는 여러 부모 인터페이스를 넣을 수 있다.

즉, 다중 상속이 가능하다.

또 추상 클래스보다 제약이 강한 이유는 인터페이스 안에서 선언한 추상 메서드는 자식 객체에서 반드시 재정의(@override)를 해야 한다.

만약, 해당 메서드 중 재정의를 하고 싶지 않다면 추상 메서드(abstract)로 만들어야 한다.

(만약 동물이란 객체를 구현한다고 하자. 다양한 동물들이 있고 각각 특성들은 다 다를 것이다. 그러나 동물이라면 반드시 가져야 하는 특성들이 있다. 다양한 자식 객체를 만들 때, 꼭 넣어야 하는 특징들을 인터페이스에서 선언한 후 자식 메서드에서 재정의를 하는 것이다. ex) 울음소리 )

 

인터페이스는 객체로 생성할 수 없기 때문에 객체 선언을 할 수 없다.

 

인터페이스

'Java > 개념 정리' 카테고리의 다른 글

컬렉션 프레임워크  (0) 2022.06.20
배열 _ 다차원 배열  (0) 2022.06.15
클래스의 상속 _ 추상 클래스  (0) 2022.06.10
메모리 구조  (0) 2022.06.01
클래스의 상속  (0) 2022.05.30
Comments