[java] 자바 추상 클래스와 인터페이스의 상속 구조를 정리한 다이어그램

자바에서 추상 클래스와 인터페이스는 객체 지향 프로그래밍의 중요한 요소입니다. 추상 클래스는 일반 클래스와 추상 메서드를 모두 포함할 수 있으며, 인터페이스는 추상 메서드만을 포함합니다. 이들의 상속 구조는 다음과 같이 설명할 수 있습니다.

추상 클래스 (Abstract Class)

추상 클래스는 abstract 키워드로 선언되며, extends 키워드로 다른 추상 클래스나 일반 클래스를 상속할 수 있습니다. 추상 클래스는 다음과 같은 특징을 가집니다:

아래는 추상 클래스 상속 구조의 예시입니다:

abstract class Animal {
    abstract void makeSound();
}

abstract class Mammal extends Animal {
    abstract void eat();
}

class Dog extends Mammal {
    void makeSound() {
        System.out.println("Woof!");
    }

    void eat() {
        System.out.println("Eating bones");
    }
}

인터페이스 (Interface)

인터페이스는 interface 키워드로 선언되며, extends 키워드로 다른 인터페이스를 상속할 수 있습니다. 인터페이스는 다음과 같은 특징을 가집니다:

아래는 인터페이스 상속 구조의 예시입니다:

interface Animal {
    void makeSound();
}

interface Mammal extends Animal {
    void eat();
}

class Dog implements Mammal {
    void makeSound() {
        System.out.println("Woof!");
    }

    void eat() {
        System.out.println("Eating bones");
    }
}

추상 클래스와 인터페이스 상속 구조 다이어그램

아래는 자바 추상 클래스와 인터페이스의 상속 구조를 시각적으로 나타낸 다이어그램입니다:

추상 클래스와 인터페이스 다이어그램

결론

자바에서 추상 클래스와 인터페이스는 상속 구조를 통해 코드의 재사용성과 유연성을 높일 수 있는 중요한 개념입니다. 추상 클래스는 일반 클래스와 추상 메서드를 포함하고, 인터페이스는 추상 메서드만을 포함하며 다중 상속을 지원합니다. 이를 적절히 활용하면 객체 지향 프로그래밍에서 더욱 강력하고 유연한 코드를 작성할 수 있습니다.

참고: Oracle, “The Java Tutorials - Abstract Methods and Classes” (https://docs.oracle.com/javase/tutorial/java/IandI/abstract.html)