-
클래스
- 특징
- 객체를 만들기 위한 설계도
- 필드(속성) + 메서드 (동작)을 가질 수 있음
- 상속(extends) 가능, 다중 상속 불가(인터페이스는 가능)
- 접근제어자 사용가능
- 장점
- 구체적 구현을 포함할 수 있어 즉시 객체 생성 가능
- 재사용, 캡슐화, 상속 활용 가능
- 필드와 메서드를 같이 관리할 수 있음
- 단점
- 다중 상속 불가
- 강한 결합 발생 가능 → 변경시 영향 범위가 크다.
-
인터페이스(Interface)
- 특징
- 규약 역할 → 구현 클래스가 반드시 메서드를 구현하도록 강제
- 필드 선언 불가 (상수만 가능, public static final)
- 메서드 시그니처만 선언, default/ static 메서드 구현 가능
- 다중 상속 가능
- 장점
- 다형성 활용 가능 → 서로 다른 클래스도 같은 인터페이스 타입으로 다루기 가능
- 하나의 타입으로 여러 행태의 객체를 다룰 수 있는 성질을 말함
- 구현 강제 → 표준화, 유지보수 용이
- 다중 구현가능(implements) → 유연성 높음
- 단점
- 객접 객체 생성 불가 → 반드시 구현 클래스 필요
- 기본 구현이 없으면 모든 메서드를 구현해야 해서 번거로움