[java] 상속과 인터페이스의 차이점

자바에서 상속과 인터페이스는 객체지향 프로그래밍에서 중요한 개념입니다. 두 가지 기능은 각각의 고유한 기능과 장단점을 가지고 있습니다.

상속 (Inheritance)

상속은 클래스 간의 계층 구조를 구현하는 데 사용됩니다. 부모 클래스에서 정의된 속성과 메서드를 자식 클래스가 상속받아 사용할 수 있습니다. 이로써 코드의 재사용성이 증가하고, 클래스 간의 관계가 명확해집니다.

class Animal {
    void sound() {
        System.out.println("Some sound");
    }
}

class Dog extends Animal {
    void sound() {
        System.out.println("Bark");
    }
}

인터페이스 (Interface)

인터페이스는 클래스가 따라야 하는 규약을 정의합니다. 클래스가 구현해야 하는 메서드 시그니처를 정의하여, 여러 클래스가 동일한 동작을 보장할 수 있습니다. 여러 개의 인터페이스를 구현할 수 있지만, 클래스는 여러 개의 클래스만 상속할 수 있습니다.

interface Vehicle {
    void start();
    void stop();
}

class Car implements Vehicle {
    public void start() {
        // 구현
    }
    public void stop() {
        // 구현
    }
}

결론

상속은 클래스 간의 계층 구조를 형성하고 코드 재사용성을 높이는 데 사용되며, 인터페이스는 클래스 간의 동작을 표준화하는 데 사용됩니다.

참고 자료: