추상클래스(Abstract Class), 일반클래스(Concrete Class), 인터페이스(Interface)는 객체지향 프로그래밍에서 클래스와 관련된 세 가지 개념입니다. 이들은 각각 다른 목적과 동작을 가지고 있습니다.
추상클래스(Abstract Class):
추상클래스는 일부 메서드가 구현되지 않고 선언만 되어 있는 클래스입니다.
추상클래스는 abstract 키워드를 사용하여 선언됩니다.
추상클래스는 객체를 직접 생성할 수 없으며, 서브클래스에서 상속받아 완전한 클래스로 구현되어야 합니다.
추상클래스는 일반 메서드와 추상 메서드를 모두 가질 수 있습니다.
추상 메서드는 선언만 되어 있고 실제 구현은 하위 클래스에서 이루어집니다.
추상클래스는 공통된 기능을 가진 클래스들 간의 추상적인 상위 개념을 나타내기 위해 사용됩니다.
일반클래스(Concrete Class):
일반클래스는 모든 메서드가 구현되어 있는 클래스로, 객체를 직접 생성하고 사용할 수 있습니다.
일반클래스는 추상클래스나 인터페이스로부터 직접 상속받을 수 있습니다.
일반클래스는 자체적으로 필요한 속성과 동작을 구현하며, 다른 클래스에서 상속받을 수도 있습니다.
일반클래스는 객체를 생성하여 사용할 때 클래스의 구체적인 기능을 사용할 수 있습니다.
인터페이스(Interface):
인터페이스는 일종의 계약이며, 클래스에 대한 설계 명세서입니다.
인터페이스는 interface 키워드를 사용하여 선언됩니다.
인터페이스는 추상 메서드와 상수(변하지 않는 값)만을 가질 수 있습니다. 따라서 메서드의 구현은 인터페이스를 구현하는 클래스에서 이루어집니다.
클래스는 하나 이상의 인터페이스를 구현할 수 있으며, 다중 상속을 지원합니다.
인터페이스는 다른 클래스들 사이의 공통된 동작을 정의하기 위해 사용됩니다. 이를 통해 다형성을 구현하고 클래스 간의 결합도를 낮출 수 있습니다.
요약하자면, 추상클래스는 구현되지 않은 메서드를 포함한 클래스로, 다른 클래스에서 상속받아 구체화됩니다. 일반클래스는 모든 메서드가 구현된 클래스로, 객체를 직접 생성하여 사용할 수 있습니다. 인터페이스는 메서드와 상수만을 가진 계약 형태의 클래스로, 클래스들 간의 공통된 동작을 정의하기 위해 사용됩니다.
'TIL(Today I Learned)' 카테고리의 다른 글
[20230705 TIL] Generic 이란 (0) | 2023.07.05 |
---|---|
[20230627 TIL] 미들웨어와 데이터베이스 차이점 (0) | 2023.06.27 |
[20230619] 오버로딩(Overloading)과 오버라이딩(Overriding) (0) | 2023.06.19 |
[20230615 TIL] 쿠키와 세션 (0) | 2023.06.15 |
[TIL 20230614] JVM (0) | 2023.06.14 |