상식닷컴
로그인
가입하기
2026년 상식닷컴 선정 식당 & 카페 리스트
2025년 2026년 신상 호텔 리스트
최근에 오픈한 호텔을 찾는다면 살펴보세요
일주일 식단표 어플
자동 일주일 식단표 어플
안드로이드
아이폰
주식 & 코인 차트의 신
1000만원으로 2000만원 만들기 프로젝트
수정하기 - 자바 8에서 인터페이스의 default 메서드란 무엇인가요?
닉네임
비밀번호
제목
내용
[이미지 업로드는 권한이 있는 사람만 가능. 하단 카톡으로 연락]
<a href='https://sangseek.com/sangseeks/자바/ko'>자바</a> 8에서 도입된 `default` 메서드는 인터페이스에 구현을 제공할 수 있는 기능입니다. 이전 버전의 자바에서는 인터페이스는 오직 추상 메서드만 가질 수 있었지만, 자바 8부터는 `default` 키워드를 사용하여 인터페이스 내에 기본 구현을 포함할 수 있게 되었습니다. 이를 통해 인터페이스를 확장하면서도 기존의 구현에 영향을 주지 않고 새로운 기능을 추가할 수 있습니다. `default` 메서드의 주요 특징1. 기본 구현 제공 : `default` 메서드는 인터페이스 내에서 직접 구현을 제공할 수 있습니다. 이를 통해 인터페이스를 구현하는 클래스는 이 메서드를 오버라이드하지 않고도 기본 동작을 사용할 수 있습니다. ```java public interface MyInterface { default void myDefaultMethod() { System.out.println("This is a default method."); } } ```2. 다중 상속 지원 : 자바는 클래스의 다중 상속을 지원하지 않지만, 인터페이스는 여러 개를 구현할 수 있습니다. `default` 메서드를 사용하면 여러 인터페이스에서 동일한 메서드 이름을 가질 수 있으며, 이를 구현하는 클래스에서 어떤 메서드를 사용할지 명시적으로 선택할 수 있습니다. ```java public interface InterfaceA { default void myMethod() { System.out.println("InterfaceA's default method."); } } public interface InterfaceB { default void myMethod() { System.out.println("InterfaceB's default method."); } } public class MyClass implements InterfaceA, InterfaceB { @Override public void myMethod() { InterfaceA.super.myMethod(); // InterfaceA의 메서드 호출 // 또는 // InterfaceB.super.myMethod(); // InterfaceB의 메서드 호출 } } ```3. 코드 유지보수 용이 : 기존 인터페이스에 새로운 메서드를 추가할 때, 모든 <a href='https://sangseek.com/sangseeks/구현 클래스/ko'>구현 클래스</a>에서 해당 메서드를 구현할 필요가 없으므로 코드 유지보수가 용이해집니다. 새로운 기능을 추가하면서도 기존의 코드에 영향을 주지 않게 됩니다.4. <a href='https://sangseek.com/sangseeks/람다/ko'>람다</a> 표현식과의 결합 : 자바 8에서는 <a href='https://sangseek.com/sangseeks/람다 표현식/ko'>람다 표현식</a>이 도입되었고, `default` 메서드는 이러한 기능과 잘 결합되어 함수형 프로그래밍 스타일을 지원합니다. 사용 예시아래는 `default` 메서드를 사용하는 간단한 예시입니다.```javapublic interface Animal { default void makeSound() { System.out.println("Some sound"); }}public class Dog implements Animal { @Override public void makeSound() { System.out.println("Bark"); }}public class Cat implements Animal { // Cat 클래스는 makeSound()를 오버라이드하지 않음}public class Main { public static void main(String[] args) { Animal dog = new Dog(); dog.makeSound(); // 출력: Bark Animal cat = new Cat(); cat.makeSound(); // 출력: Some sound }}```위 예시에서 `Dog` 클래스는 `makeSound()` 메서드를 오버라이드하여 개의 소리를 출력하고, `Cat` 클래스는 기본 구현을 그대로 사용하여 "Some sound"를 출력합니다. 결론자바 8의 `default` 메서드는 인터페이스의 유연성을 높이고, 코드의 재사용성을 증가시키는 중요한 기능입니다. 이를 통해 개발자는 인터페이스를 설계할 때 더 많은 선택권을 가지게 되며, 기존 코드를 손상시키지 않고 새로운 기능을 추가할 수 있는 장점을 누릴 수 있습니다.
이용안내
커뮤니티 이용안내
×
- 게시한 게시글로 발생하는 문제는 게시자에게 책임이 있습니다.
- 게시글이 타인/타업체의 저작권을 침해할 경우 모든 책임은 게시자에게 있습니다. 게시자가 모든 손해를 부담해야 합니다.
- 상식닷컴 운영자는 게시자와 상의하지 않고 게시글을 수정 또는 삭제할 수 있습니다.
- 상식닷컴 운영자는 깨끗한 커뮤니티 공간을 만드는 것이 1순위입니다.
수정하기
취소하기