본문 바로가기

TIL(Today I Learned)

[20230623 TIL] 추상클래스, 일반클래스, 인터페이스 차이

추상클래스(Abstract Class), 일반클래스(Concrete Class), 인터페이스(Interface)는 객체지향 프로그래밍에서 클래스와 관련된 세 가지 개념입니다. 이들은 각각 다른 목적과 동작을 가지고 있습니다.

추상클래스(Abstract Class):
추상클래스는 일부 메서드가 구현되지 않고 선언만 되어 있는 클래스입니다.
추상클래스는 abstract 키워드를 사용하여 선언됩니다.
추상클래스는 객체를 직접 생성할 수 없으며, 서브클래스에서 상속받아 완전한 클래스로 구현되어야 합니다.
추상클래스는 일반 메서드와 추상 메서드를 모두 가질 수 있습니다.
추상 메서드는 선언만 되어 있고 실제 구현은 하위 클래스에서 이루어집니다.
추상클래스는 공통된 기능을 가진 클래스들 간의 추상적인 상위 개념을 나타내기 위해 사용됩니다.
일반클래스(Concrete Class):
일반클래스는 모든 메서드가 구현되어 있는 클래스로, 객체를 직접 생성하고 사용할 수 있습니다.
일반클래스는 추상클래스나 인터페이스로부터 직접 상속받을 수 있습니다.
일반클래스는 자체적으로 필요한 속성과 동작을 구현하며, 다른 클래스에서 상속받을 수도 있습니다.
일반클래스는 객체를 생성하여 사용할 때 클래스의 구체적인 기능을 사용할 수 있습니다.
인터페이스(Interface):
인터페이스는 일종의 계약이며, 클래스에 대한 설계 명세서입니다.
인터페이스는 interface 키워드를 사용하여 선언됩니다.
인터페이스는 추상 메서드와 상수(변하지 않는 값)만을 가질 수 있습니다. 따라서 메서드의 구현은 인터페이스를 구현하는 클래스에서 이루어집니다.
클래스는 하나 이상의 인터페이스를 구현할 수 있으며, 다중 상속을 지원합니다.
인터페이스는 다른 클래스들 사이의 공통된 동작을 정의하기 위해 사용됩니다. 이를 통해 다형성을 구현하고 클래스 간의 결합도를 낮출 수 있습니다.
요약하자면, 추상클래스는 구현되지 않은 메서드를 포함한 클래스로, 다른 클래스에서 상속받아 구체화됩니다. 일반클래스는 모든 메서드가 구현된 클래스로, 객체를 직접 생성하여 사용할 수 있습니다. 인터페이스는 메서드와 상수만을 가진 계약 형태의 클래스로, 클래스들 간의 공통된 동작을 정의하기 위해 사용됩니다.