-
인터페이스(Interface)는 객체의 사용 방법을 정의한 타입이다.
인터페이스는 객체를 생성할 수 없기 때문에 생성자를 가질 수 없고, 상수와 메서드만을 구성 멤버로 가진다. 그래서 인터페이스에는 추상 메서드만 선언이 가능했었는데 자바 8 부터 새롭게 디폴드 메서드와 정적 메서드가 추가되었다.
정적 메서드(Static Method)
정적 메서드는 디폴트 메서드와 달리 객체가 없어도 인터페이스만으로 호출이 가능하다. 아래 예제를 참고하자.
public interface InterfaceTest { static void printName() { System.out.println("My name is Kimdoenyi"); } }
public class Test { public static void main(String[] args) { // 실행시 "My name is Kimdoenyi" 가 출력된다. InterfaceTest.printName(); } }
디폴트 메서드(Default Method)
디폴트 메서드는 인터페이스에 선언된 객체(구현 객체)가 가지고 있는 인스턴스 메서드이다. 자바 8에서 디폴트 메서드를 허용한 이유는 기존 인터페이스를 확장해서 새로운 기능을 추가하기 위해서이다. 기존 인터페이스의 이름과 추상 메서드의 변경 없이 디폴트 메서드만 추가할 수 있기 때문에 이전에 개발한 구현 클래스를 그대로 사용할 수 있으면서 새롭게 개발하는 클래스는 디폴트 메서드를 활용할 수 있다.
'개발 > Java' 카테고리의 다른 글
접근 제한자(Access Modifier) (0) 2022.01.04 람다식(Lambda Expressions) (1) 2021.12.28 댓글