이 게시물에서는 Java와 C#에서 추상 클래스와 인터페이스의 차이점을 이해합니다.
추상 클래스
-
선언 및 정의 부분이 포함되어 있습니다.
-
다중 상속은 추상 클래스를 사용하여 구현할 수 없습니다.
-
생성자가 포함되어 있습니다.
-
일부 정적 멤버를 포함할 수도 있습니다.
-
public, private, protected와 같은 여러 유형의 액세스 수정자를 포함할 수 있습니다.
-
추상 클래스의 성능은 빠르기 때문에 매우 좋습니다.
-
클래스의 핵심 ID/기능을 구현하는 데 사용됩니다.
-
클래스는 하나의 추상 클래스만 사용할 수 있습니다.
-
많은 구현이 동일하고 공통 동작이 있는 경우 추상 클래스를 사용하는 것이 좋습니다.
-
추상 클래스에는 메서드, 필드, 상수가 포함됩니다.
-
완전히 구현되거나 부분적으로 구현되거나 구현되지 않을 수도 있습니다.
인터페이스
-
선언 부분만 포함합니다.
-
인터페이스를 사용하여 다중 상속이 가능합니다.
-
생성자가 없습니다.
-
정적 멤버를 포함하지 않습니다.
-
인터페이스의 모든 항목이 공개로 간주되므로 공개 액세스 수정자가 포함되어 있습니다.
-
인터페이스 성능이 좋지 않습니다.
-
해당 클래스에서 실제 메소드를 찾는 데 시간이 필요하기 때문에 느립니다.
-
클래스의 주변 능력을 구현하는 데 사용됩니다.
-
다중 인터페이스를 사용할 수 있습니다.
-
여러 구현이 메서드를 공유하는 경우 '인터페이스'를 사용할 수 있습니다.
-
인터페이스에는 메서드만 포함될 수 있습니다.
-
완전히 구현해야 합니다.