java Default Method(인터페이스 디폴트 메소드)
추상 클래스내 함수 구현 처럼 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();
}
}
실행 결과
출처: https://lovon.tistory.com/191?category=862726 [Java 개발 블로그]
'JAVA > Java' 카테고리의 다른 글
[Java] StartsWith/EndWith : 문자열의 시작/끝 부분과 특정 문자열이 일치하는지 확인하기 (0) | 2022.11.15 |
---|---|
[Java] StringBuffer append("a"+"b") 메모리는 어떻게 할당될까? (0) | 2022.11.15 |
[Java] String, StringBuffer, StringBuilder의 차이점 (0) | 2022.11.15 |
[Java] String과 new String 차이 (0) | 2022.11.15 |
java 이메일 마스킹 처리 (0) | 2022.04.26 |
java 휴대폰번호 마스킹 처리 (0) | 2022.04.26 |
문자에서 숫자만 추출 (0) | 2022.04.26 |
java 이메일 형식 검사 (0) | 2022.04.26 |