추상 클래스내 함수 구현 처럼 Interface 클래스 내에 함수를 선언 및 구현할 수 있도록 한다.
Interface 구현 클래스에서 Override 할 수 있다.
왜? 나왔을까?
"하위 호환성" 때문에 등장
인터페이스에 신규 함수 선언시 기존에 상속받아 구현하던 클래스에 모두 빨간불이 들어와 직접 구현을해야하는 상황을 방지하기 위해 등장함.
간단 코드로 보기
public class DefaultClass{
public interface TestInterface {
// 선언 후 구현까지 해야한다.
default void defaultFunction(){
System.out.println("this is default function");
}
}
private static class SubClass11 implements TestInterface{
// 기존 Interface 함수처럼 Override 가능
@Override
public void defaultFunction() {
System.out.println("this is SubClass Function");
}
}
private static class SubClass22 implements TestInterface{
// default Function은 구현하지 않아도 된다.
}
public static void main(String[] args) {
SubClass11 subClass11 = new SubClass11();
SubClass22 subClass22 = new SubClass22();
subClass11.defaultFunction();
subClass22.defaultFunction();
}
}
실행 결과
'JAVA > JAVA' 카테고리의 다른 글
파일 거꾸로 읽기 (0) | 2023.05.26 |
---|---|
파일 압축 (0) | 2023.05.25 |
Equals 구현 (0) | 2021.03.22 |
1000단위 콤마 입력 (0) | 2021.03.09 |
이메일 마스킹 처리 (0) | 2021.03.09 |