interface
키워드를 사용합니다.public static final
로 선언되며, 이는 생략 가능합니다.public abstract
로 선언되며, 이 또한 생략 가능합니다.{접근 제어자} interface {인터페이스명} { public static final {타입} {상수명} = {값}; ... public sbstract {타입} {메서드명}(); ... }
인터페이스 내 메서드 예시
public interface MyInterface { void doSomething(); // 추상 메서드 default void defaultMethod() { // 디폴트 메서드 System.out.println("This is a default method."); } static void staticMethod() { // 정적 메서드 System.out.println("This is a static method."); } }
class {클래스명} implements {인터페이스명} {...}
implements
키워드를 사용합니다. 여러 개의 인터페이스를 상속받을 수 있습니다.// 단일 상속 class {클래스명} extend {상위 클래스 명} implements {인터페이스 명} { ... } // 다중 상속 class {클래스명} extend {상위 클래스 명} implements {인터페이스 명1}, {인터페이스 명2} { ... }
// 인터페이스 정의 interface Animal { void makeSound(); } interface Pet { void play(); } // 클래스가 두 개의 인터페이스를 구현 class Dog implements Animal, Pet { @Override public void makeSound() { System.out.println("Woof!"); } @Override public void play() { System.out.println("Playing fetch!"); } } // 사용 예시 public class Main { public static void main(String[] args) { Dog dog = new Dog(); dog.makeSound(); dog.play(); } }
💡 인터페이스나 추상 클래스에서 정의된 메서드들을 실제로 구현하는 클래스
List<String> list = new ArrayList<>();
에서는 ArrayList가 List 인터페이스의 구현체입니다.❓ 추상 클래스