[java] 인터페이스와 클래스의 차이점은?

자바에서 인터페이스클래스는 둘 다 객체 지향 프로그래밍의 핵심 개념입니다. 각각의 역할과 특징을 이해하기 위해 다음과 같이 비교해 보겠습니다.

목차

인터페이스

인터페이스는 abstract 형태의 클래스로, 추상 메서드상수만을 가질 수 있습니다. 어떤 클래스에서 해당 인터페이스를 구현하면, 모든 추상 메서드를 오버라이딩하여 구체적 내용을 포함시켜야 합니다. 인터페이스를 사용하면 다중 상속을 구현할 수 있으며, 코드의 유연성을 높일 수 있습니다.

public interface Shape {
    double getArea();
    double getPerimeter();
}

클래스

클래스는 객체를 생성하기 위한 로, 속성기능을 가지고 있습니다. 클래스는 인터페이스를 구현할 수 있으며, 다른 클래스로부터 상속받을 수 있습니다.

public class Circle implements Shape {
    private double radius;
    
    public Circle(double radius) {
        this.radius = radius;
    }
    
    public double getArea() {
        return Math.PI * radius * radius;
    }
    
    public double getPerimeter() {
        return 2 * Math.PI * radius;
    }
}

차이점

인터페이스는 추상 메서드와 상수만을 가지며, 다중 상속을 지원한다. 반면 클래스는 속성과 기능을 가지고 있으며, 다른 클래스로부터 상속을 받을 수 있다.

이를 통해 인터페이스는 다른 클래스들 사이의 관련성을 정의하고 연결하는 역할을 하며, 클래스는 객체의 속성과 기능을 정의하는 역할을 합니다.

더 자세한 내용은 Oracle Java Documentation를 참조할 수 있습니다.