[Java] 인터페이스 확장 (디폴트 메소드의 필요성) 1. 디폴트 메소드 [public] default 리턴타입 메소드명(매개변수, ...) { // ... (실행 내용) } 자바 8부터 인터페이스에 디폴트 메소드가 추가되었습니다. 인터페이스에 선언된 인스턴스 메소드이기 때문에 구현 객체가 있어야 사용할 수 있습니다. 선언은 인터페이스에서 하고, 사용은 구현 객체를 통해 사용합니다. 구현 클래스에서 오버라이딩을 통해 해당 구현체에 맞게 수정이 가능합니다. 2. 디폴트 메소드의 필요성 기존 인터페이스를 확장해서 새로운 기능을 추가하기 위해서입니다. 기존 인터페이스의 이름과 추상 메소드의 변경 없이 디폴트 메소드만 추가할 수 있기 때문에 이전에 개발한 구현 클래스를 그대로 사용할 수 있으면서 새롭게 개발하는 클래스는 디폴트 메소드를 활용할 수 있습니다. 추상 .. Backend/Java 3년 전
[Java] 자바 8 인터페이스의 Default 메소드와 Static 메소드 1. 자바 8에서의 인터페이스의 변화 자바 8에서의 인터페이스의 변화로 큰 두 가지는 인터페이스에 기본 메소드(Default Method)와 스태틱 메소드(Static Method)가 추가된 것입니다. 이 변화로 인해 인터페이스 설계에 많은 변화가 생겼습니다. 자바 8이전에는 설계된 인터페이스를 구현 후 나중에 추가적으로 기능 추가에 대한 요구사항이 생기게 되면 결국에 인터페이스에 새 기능(추상 메소드)를 추가하게 되는데, 그 경우 모든 구현체에서 컴파일 에러가 발생하면서 새로운 추상 메소드를 따로 다 구현해야 되는 상황이 발생하게 됩니다. 그러나 자바 8에선 Default Method의 등장으로 새로 요구되는 기능들을 편하게 추가 할 수 있습니다. 2. 자바 8 인터페이스 예시 [인터페이스] impor.. Backend/Java 3년 전