인터페이스에 메소드를 추가 할 때
기존에 해당 인터페이스를 구현한 클래스는 추가 할 메소드가 구현되어 있지 않으므로 오류가 뜨게 된다.
이 때 인터페이스 안에 default 키워드를 이용해 메소드를 구현해 놓으면
수정후에 인터페이스를 구현한 모든 클래스에서 해당 메소드를 사용 할 수 있고 오버라이딩 해서 사용 할 수도 있다.
예시
public interface MyService{
public void myDuties();
}
를 구현 한 두 클래스
public class Developer implements MyService{
public void myDuties(){
}
}
public class Tester implements MyService{
public void myDuties(){
}
}
가 있을 때
public interface MyService{
public void myDuties();
public void extraDuties();
}
위의 코드처럼 extraDuties() 라는 메소드를 추가하게 되면 Developer와 Tester 클래스에 오류가 뜨게 된다.
public interface MyService{
public void myDuties();
default public void extraDuties();
}
위의 코드처럼 default를 붙여주게 되면 Developer와 Tester 클래스에 오버라이딩 하지 않아도 오류가 뜨지 않는다.
참조
'Language > Java' 카테고리의 다른 글
[Java] Collection Framework 소개 (0) | 2020.12.14 |
---|---|
[JAVA] 제네릭 클래스, 제네릭 메소드 (0) | 2020.11.14 |
[JAVA]난수 발생(Math.Random()) (0) | 2020.11.14 |
자바 파일 입 출력 (0) | 2020.11.14 |
try-with-resources (0) | 2020.11.14 |