728x90
반응형
SMALL
자바(Java)와 같은 객체 지향 프로그래밍 언어에서, 추상 클래스(Abstract Class)와 인터페이스(Interface)는 클래스가 어떤 메서드를 가져야 할지를 정의하고 그 구조를 설계하는 데 있어 중요한 역할을 합니다. 그러나 이 두 개념 사이에는 중요한 차이점이 있습니다.
추상 클래스(Abstract Class)
추상 클래스는 추상 메서드(즉, 선언만 있고 구현 내용이 없는 메서드)를 포함할 수 있는 클래스입니다. 추상 클래스는 객체를 직접 생성할 수 없습니다. 대신에 다른 클래스가 이를 상속 받아서 추상 메서드를 구현하도록 설계됩니다.
추상 클래스의 특징:
- 추상 메서드를 포함할 수 있습니다.
- 구현된 메서드도 포함할 수 있습니다.
- 클래스를 상속하면 추상 클래스의 메서드를 모두 구현해야 합니다.
- 추상 클래스는 객체를 직접 생성할 수 없습니다.
인터페이스(Interface)
인터페이스는 클래스 또는 프로그램이 가져야 할 메서드의 '프로토콜' 또는 '서명'을 정의합니다. 인터페이스는 객체를 생성할 수 없지만, 인터페이스를 구현하는 클래스는 인터페이스에서 정의한 모든 메서드를 구현해야 합니다.
인터페이스의 특징:
- 인터페이스의 모든 메서드는 기본적으로 추상 메서드입니다.
- 인터페이스의 메서드는 public이며, 변수는 public static final입니다.
- 인터페이스는 다중 상속을 지원합니다.
- 인터페이스는 객체를 생성할 수 없습니다.
다음은 추상 클래스와 인터페이스의 주요 차이점을 요약한 표입니다:
추상 클래스 | 인터페이스 | |
추상 메서드 포함 | 가능 | 기본적으로 포함 |
구현된 메서드 포함 | 가능 | Java 8부터 가능 |
상속/구현 | 클래스가 상속 | 클래스가 구현 |
다중 상속 | 지원하지 않음 | 지원 |
접근 제한자 | 자유롭게 지정 가능 | 모두 public |
객체 생성 | 불가능 |
728x90
반응형
LIST
'Java' 카테고리의 다른 글
자바의 가비지 컬렉션: 이해하기 쉽게 보는 동작 과정 (0) | 2023.06.05 |
---|---|
싱글톤 패턴(Singleton Pattern): 그것이 무엇인가? (0) | 2023.05.28 |
멀티스레딩 문제 해결하기: 다양한 접근 방법들 (0) | 2023.05.27 |
자바에서의 해시: 이해와 활용 (0) | 2023.05.27 |
자바 컬렉션 프레임워크 기초: List, Set, Map 이해하기 (0) | 2023.05.25 |