Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
Tags
- fastapi
- 클래스 #아이디
- MVC #디자인패턴
- 웹 크롤링
- 개발자가 되기 위해 꼭 알아야 하는 IT용어
- 생성자 #자바 #기록남기기
- 데이터 수집
- 커밋
- 파이썬
- 머신러닝 #회귀 #규제
- 에러포스팅
- 그룹핑
- 개발공부
- SafeUpdate
- 단축키정리
- 크롬브라우저
- Numpy #TIL #넘파이 기초
- SQL
- C언어 #문자열변환 #정수형변환
- COMMIT
- 스프링부트
- 컬럼수정
- 스프링 입문
- 옵셔널태그
- 작업 영역
- 공부내용정리
- GIT
- 김영한 #SOLID #객체지향
- 기술블로그
- 머신러닝 #학습내용정리
Archives
- Today
- Total
데이터 분석가 몽구리
[Java] 인터페이스 다중 구현 이해하기 본문
인터페이스 - 다중 구현
자바의 다중 상속 지원 X
자바는 다중 상속을 지원하지 않는다. 그래서 자바에서 `extens` 상속 대상은 하나만 선택할 수 있다.
자바에서 다중 상속을 지원하지 않는 이유는 다이아몬드 문제가 발생할 수 있기 때문이다.
위의 그림과 같이 `AirplaneCar` 입장에서 `move()`를 호출할 때 어떤 부모의 `move()`를 사용해야 할지 애매한 문제가 발생한다.
이러한 문제 때문에 자바에서는 다중 상속을 지원하지 않지만, 그에 반해 다중 구현은 지원하고 있다 .
**다중 구현은 허용**
다중 상속은 불가하지만 다중 구현은 가능한 이유는 무엇일까? 그 이유는 인터페이스가 순수 추상 메서드로 구현되어 있기 때문이다.
`InterfaceA`와 `InterfaceB`모두 `methodCommon()`을 가지고 있다. 그리고 `Child`는 두 인터페이스를 모두 모두 구현한 상태이다.
인터페이스는 구현을 가지지 않기 때문에 `Child`는 `methodCommon()`을 호출하게 된다. 결과적으로 두 부모 중에 고민할 필요 없이 인터페이스들을 구현한 `Child`에 있는 `methodComon()`을 사용하면 된다.
'Java' 카테고리의 다른 글
final 변수와 상수 (0) | 2024.03.30 |
---|---|
자바 메모리 구조와 static (0) | 2024.03.25 |
캡슐화 (0) | 2024.03.24 |
접근제어자 (0) | 2024.03.24 |
제네릭과 컬렉션 (0) | 2024.01.26 |