비전공자들을 위한 인터페이스 개념잡기

WON HOYEON·2024년 7월 2일

💡 인터페이스(Interface)란?

간단히 말해, 인터페이스는 '무엇(What)'을 해야 하는지를 나타내는 일종의 작업지시서 역활이다.

인터페이스(Interface)의 특징

✔️ 메서드 명세 : 메서드들의(매개변수 타입, 반환 타입)만을 선언하고 구현은 포함하지 않음
추상 클래스와 유사하지만 추상 클래스와는 달리 멤버변수와 일반 메서드를 가질 수 없다.

✔️ 구현 강제 : 인터페이스에서 선언한 모든 메서드를 반드시 구현해야한다.

✔️ 다중 상속지원 : 클래스는 하나의 클래스만 상속받을 수 있지만, 인터페이스는 여러 개 구현 가능함으로 재사용성이 높아짐.

📌 주의할 점

✔️ 생성자를 가질 수 없음 : 인터페이스는 객체를 생성할 수 없으므로 생성자가 필요하지 않다.
인터페이스를 구현한 클래스의 생성자를 통해 객체를 생성할 수 있음

✔️ 메서드와 상수만을 가짐 : 인터페이스는 추상 메서드, 디폴트 메서드, 정적 메서드와 같은 메서드들을 포함할 수 있다.
또한 public static final로 선언된 상수도 가질 수 있음

✔️ 구현(implementation) : 클래스가 인터페이스를 구현(implement)한다고 표현함. 이는 클래스가 인터페이스에 선언된 모든 메서드를 구현해야 한다는 의미다

interface Flyable {
    void fly();
}

class Bird implements Flyable {
    public void fly() {
        System.out.println("Bird is flying");
    }
}

class Airplane implements Flyable {
    public void fly() {
        System.out.println("Airplane is flying");
    }
}

public class Main {
    public static void main(String[] args) {
        Flyable bird = new Bird();
        bird.fly(); // "Bird is flying" 출력

        
        Flyable airplane = new Airplane();
        airplane.fly(); // "Airplane is flying" 출력
    }

profile
分からなかったことを整理し、後から見返すための記録です。

0개의 댓글