210204_JAVA_인터페이스

정재현·2021년 2월 4일
0

TIL

목록 보기
65/80

오늘은 어제에 이어서
인터페이스 간 상속, 디폴트 메소드, static 메소드, instanceof 연산을 쭉쭉 알아보겠다.
어제 진행하면서 인터페이스 간에 상속이 있으면 복잡할 것 같다고 했는데, 오늘 예제는 보니
오히려 복잡함이 아니라 편리함과 효율성을 가져다준다고 느꼈다.

어제 예제로 들었던 프린터에 상황을 하나 덧붙여보자면, 원래 잡았던 드라이버들은 흑백 프린터였는데
시간이 흘러 이제는 컬러 프린터로 바뀐 상황이다.
그럼 마이크로소프트 인터페이스도 그에 맞게 변환이 되어야 하는데, 현재는 흑백으로 맞춰놓은 상황이다.
그래서 인터페이스의 코드를 더 추가하자니 이미 구현해놓은 드라이버들은 흑백 프린터여서 거기에 맞춰 또 추가한다면 흑백프린터에 컬러메소드를 넣는 꼴이 되버린다.
아주 난감한 상황이 되었다..

이때 상속을 이용하면 된다.
원래 로직: interface Printable -> 흑백프린터
추가 로직: interface Printable -> interface ColorPrintable extends Printable -> 컬러프린터

흑백프린터는 그냥 그대로 사용하고 컬러프린터는 상속을 거친 인터페이스를 사용하는 것이다.
아주 획기적이군..!

이를 소스코드로 보자면,
github: https://github.com/jeong-jaehyeon/JavaProject/blob/javaExercise/src/PrinterDriver2.java

이로써 컬러프린터는 새롭게 개조된 인터페이스(컬러)를 사용함과 동시에 기존의 인터페이스(흑백)도 사용할 수 있다.
아주 좋습니다!! + 기존의 인터페이스를 수정하지 않는 다는 점에서도 매우 좋아.

코드에서 보다시피

- 두 클래스 사이의 상속은 extends
- 두 인터페이스 사이의 상속도 extends
- 인터페이스와 클래스 사이의 구현만 implements로 명시한다.

오늘은 조금 피곤해서 여기서 마무리하겠다!
내일 이어서 할 것!

오늘의 코멘트: 화장실 청소했더니 피곤피곤..

profile
"돈받고 일하면 프로다"

0개의 댓글