오늘 주어진 주특기 입문 과제로 요구조건에 맞는 클래스를 설계하고, 제출하는 과제가 있는데
해당 부분에서 인터페이스를 이용해 '확장에 용이한 형태'로 변경을 하라고 하였다. 그래서 다시금 공부하게 된 인터페이스
📌 1. Java 에서의 인터페이스 사용 목적?
- 객체지향 5원칙(SOLID) - 인터페이스 분리 원칙
- 인터페이스 분리 원칙이란, 객체는 자신이 호출하지 않는 메서드에 의존하지 않아야 한다 라는 원칙이다.
- 부모 클래스에서 모든 교통수단에서 공통적으로 적용이 필요한 기능 + 모든 자식 클래스에서 필요한 기능을 다 생성하고 있을 떄
기능상으로는 문제가 없지만 모든 자식 클래스들은 이 부모 클래스를 상속했기 때문에 좋든 싫든 해당 메소드를 가지고 있어야한다.
- 하지만 상속 대상인 객체의 메소드를 각 동작별로 구분해 인터페이스를 만든다면, 각 객체가 필요한 인터페이스만을 상속하여 구현하면 되므로 각자가 필요한 메소드만들을 가질 수 있게 된다.
📌 Extends(부모클래스 상속)과 Implements(인터페이스 상속)의 차이점
extends
- 부모에서 선언/정의를 모두하며 자식은 메소드/변수를 오버라이딩 없이 그대로 사용할 수 있음
- 다중 상속 불가
implements
- 부모 객체는 선언만 하며 정의(내용)은 자식객체에서에서 오버라이딩 (재정의) 해서 사용해야함
- 다중 상속 가능
*/ Interface 상속 코드
public class 자식클래스명 extends 부모클래스명 implements interface명, interface명2 {..}
🫥 근데 interface implements를 통한 구현시 메소드를 어차피 재 정의해야되니 상속의 의미가 아니라고 생각이 들 수 있다
ㄴ 어제 쓴 글의 생성자와 void의 차이점 처럼 자바를 만든 분이 FM이라서 그렇게 된듯 ㅋ .. 자바가 그렇다는데 그런거지
'✏️ Java' 카테고리의 다른 글
| 혼공자 | Chapter 6 . 클래스 5️⃣ (0) | 2022.11.30 |
---|---|
| 혼공자 | Chapter 6 . 클래스 4️⃣ (0) | 2022.11.29 |
| 혼공자 | Chapter 6 . 클래스 3️⃣ (0) | 2022.11.28 |
| 혼공자 | Chapter 6 . 클래스 2️⃣ (2) | 2022.11.25 |
| 혼공자 | Chapter 6 . 클래스 (0) | 2022.11.22 |