인터페이스(2)
-
인터페이스 default 메서드와 static 메서드
자바 8버전 이후부터 인터페이스에 기본 메소드(default 메서드)와 static 메서드를 사용할 수 있게 되었다. 왜 인터페이스는 default 메서드를 추가하였을까?? 디폴트 메서드를 이용하면, 자바 API의 호환성을 유지하면서 라이브러리를 바꿀 수 있다. 디폴트 메서드는 다중 상속 동작이라는 유연성을 제공한다. 라이브러리 설계자 입장에서 인터페이스에 새로운 메서드를 추가하는 등 인터페이스를 바꾸고 싶을 때 문제가 발생한다. 왜냐하면, 인터페이스를 바꾸면 이전에 해당 인터페이스를 구현했던 모든 클래스의 구현도 고쳐야하기 때문이다. 이러한 문제를 해결하기 위해, 자바 8버전 이후부터는 인터페이스에 디폴트 메서드나 정적 메서드를 사용할 수 있게 되었다. ⇒ 인터페이스에 디폴트 메서드를 구현하면, 이 인..
2023.04.27 -
추상화 - 인터페이스, 추상 클래스
추상화란 무엇일까?? 추상의 사전적 의미는 "사물이나 표상을 어떤 성질, 공통성, 본질에 착안하여 그것을 추출하여 파악하는 것"이다. 그렇다면, 객체지향에서의 추상화란 어떤 의미일까?? 추상의 사전적 의미와 같은 맥락으로 객체지향에서 추상화는 객체의 공통적인 속성과 기능을 추출하여 정의하는 것을 의미합니다. 추상화를 사용했을 때 이점은 뭘까?? 추상화를 사용하면, 요구사항의 정책을 높은 수준에서 서술이 가능합니다. 추상화를 사용하면, 설계가 유연해집니다. 이게 무슨 말일까??? 아래에 다음과 같은 요구사항이 있다고 하자! 감사일기를 작성하면, 리워드 지급 정책에 따라 사용자에게 리워드가 지급됩니다. 여기서, 리워드 지급 정책은 동일 리워드 지급 정책, 외부 조건에 따라 리워드가 달라지는 정책 등을 추상화..
2023.02.20