티스토리 뷰
포스팅에 앞서 내용이 틀릴 수 있습니다.
해당 부분 지적 감사히 받습니다.
자바의 인터페이스에 대해 알아보자.
먼저 인터페이스는 추상 클래스의 모든 메서드가 추상 메서드일 때 사용하면 된다.
사용하는 방법은 파일 생성 시, Class가 아니라 Interface로 생성하여야 한다.
아래 이유를 통해 왜 그런지 알아보자.
인터페이스의 성질
1. 인터페이스의 인스턴스는 생성할 수 없다.
2. 상속 시 모든 메서드를 오버라이딩 시켜야 한다.
3. 자식에서 여러 개의 인터페이스를 상속받을 수 있다.
원래 자바에서의 상속은 부모를 1명만 둘 수 있었다.
인터페이스를 통하면 여러 명의 부모를 상속받을 수 있다.
이것이 인터페이스의 가장 큰 특징이다.
그렇다면 인터페이스에 대해 조금 더 구체적인 특징에 대해 알아보자.
1. 인터페이스의 모든 메서드에는 public abstract가 들어간다.
2. 메서드 앞 public abstract를 생략이 가능하다 (생략 권장)
3. 인터페이스의 멤버 변수는 public static final이 자동으로 붙는다.(상수 처리)
4. 인터페이스 상속 시 키워드는 extends가 아닌 implements이다.
5. 인터페이스 다중 상속 시 각 인터페이스의 구분은 " , " 로 하면 된다.
Class일 경우에는 상속으로 표현하였지만, interface는 용어적으로 구현이라고 한다.
어원은.. interface의 모든 메서드를 자식에서 오버라이딩 시켜서 구현해야 하기 때문에 용어적 차이가 있다.
다만 상속이나 구현이나 실질적으로 동작하는 방식은 같기 때문에 단지 용어에만 차이가 있다고 보는 것이 맞다.
그렇다면 인터페이스를 사용하여야 하는 이유는 무엇일까?
이 부분은 추상 클래스와 겹치는 부분이 존재한다.
1. 자식에서 모든 추상 메서드를 구현해야만 한다. ( Java 9부터는 default, private를 통해 기능을 가진 메서드 생성 가능)
2. 다중 구현이 가능하다.
이를 통해 인터페이스에 대해 간단하게 알아보았다.
클래스, 추상 클래스, 인터페이스는 사실상 같다.
다만 조금씩 다른 편의 기능들을 자바에서 추가로 제공해 주는 차이만 존재한다.
다음에는 다중 구현에 대해 알아보자.
'기술스택 > 자바(Spring)' 카테고리의 다른 글
자바 OCP(Open - Closed Principle)원칙 (3) | 2025.02.11 |
---|---|
자바 다중구현 + (상속 + 인터페이스) (1) | 2025.02.11 |
자바 추상 클래스 (Abstract Class) (0) | 2025.02.11 |
자바 다형성(Polymorphism) (2) | 2025.02.11 |
자바 상속(Inheritance) (4) | 2025.02.09 |
- Total
- Today
- Yesterday
- 백준 피보나치 수열
- extends
- webhacking.kr
- 김영한 실전 자바 기본
- 김영한
- 백준 피보나치
- Los
- 코딩테스트
- java
- 김영한 실전 자바 기초
- static
- 기술스택
- 백준
- 프로그래머스 상품을 구매한 회원 비율 구하기
- 프로그래머스
- lord of sql
- 상품을 구매한 회원 비율 구하기 파이썬
- 프로그래머스 상품을 구매한 회원 비율 구하기 파이썬
- los 15
- los 15단계
- zixem
- samron3
- 코딩테스트 준비
- 스프링
- ys.k
- 김영한 실전 자바 중급
- 상속
- samron
- spring
- 자바
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |