반응형
추상클래스와 인터페이스
추상 클래스와 인터페이스는 모두 추상화를 통해 구현을 강제하는 방법이지만, 차이가 있음
추상 클래스
특정 클래스의 공통적인 특성과 행동을 정의하는데 사용
상속받는 자식 클래스가 반드시 구현해야 하는 메소드를 추상 메소드로 선언함으로써, 일관된 구현을 강제할 수 있음
- 하나 이상의 추상 메소드를 포함해야 함 (이외 변수 및 일반 메서드도 포함 가능)
- 인스턴스를 생성할 수 없음 (상속을 통해 자식 클래스에서 구현해야 함)
- 추상 클래스를 상속받은 하위 클래스에서는 추상 메서드를 반드시 구현해야 하지만, 일반 메서드는 구현할 필요 없음
- 다중 상속 불가
abstract class 클래스이름 {
...
abstract 반환타입 메소드이름();
...
}
인터페이스
인터페이스는 클래스가 구현해야 하는 행동의 명세를 제공 - 객체의 행위(메소드)의 추상화
인터페이스는 객체가 무엇을 할 수 있는지 설명할 뿐 아니라, 객체가 특정한 형식을 따르게 강제할 수 있음
→ 코드의 일관성과 유지 보수성을 높일 수 있음
- 추상 메서드와 상수만 포함 (모든 메소드가 추상 메소드로만 구성)
- 구현 클래스에서 인터페이스에서 정의한 메서드를 반드시 구현
- 다중 상속 가능
접근제어자 interface 인터페이스이름 {
public static final 타입 상수이름 = 값;
...
public abstract 메소드이름(매개변수목록);
...
}
반응형
'IT > Programming Language' 카테고리의 다른 글
[Java] 데이터 타입, 자료형 (Data Type) (0) | 2025.02.09 |
---|---|
[Java] 상속 (Inheritance) 과 인터페이스 (Interface) (0) | 2025.02.09 |
[Java] 동일성(identity)과 동등성(equality) (0) | 2025.02.09 |
[C++/STL] Iterator (0) | 2025.02.02 |
[C++/STL] Operator Overloading & Functor (0) | 2025.01.29 |