반응형
인터페이스란 뭘까?
자바에서 인터페이스란 일종의 추상 클래스라고 보면 된다.
추상클래스처럼 추상메서드와 상수를 갖지만, 추상화 정도가 더 높아서 몸통을 갖춘 일반 메서드나 멤버 변수를 가질 수 없다.
- 추상 클래스: 추상 메서드, 상수, 일반 메서드, 멤버 변수 가짐
- 인터페이스: 추상 메서드, 상수만 가짐
클래스에서 특정 메서드를 구현하도록 강제할 수 있는 기능이라고 봐도 된다.
즉, 인터페이스가 가진 모든 메서드를 구현받은 클래스가 다~~ 구현해야 한다.
클래스를 작성하기 위해 밑그림만 그려진 "기본 설계도"로 이해하면 되겠다.
인터페이스를 왜 쓰지?
동일한 목적 하에 동일한 기능을 수행하게끔 강제하기 위해서.
자바의 다형성 개념을 활용하여 개발코드 수정을 줄이고 유지보수를 쉽게 하기 위해서 인터페이스를 사용한다.
🗣️ 그냥 일반 클래스 쓰면 안 되나?
✏️ 일반 클래스끼리 상속을 시키면 결합도가 높아진다. 즉, 개발 코드에서 객체 변경이 필요할 때 수정해야 할 코드가 많아진다.
그러나, 인터페이스는 구체적인 구현을 하지 않기 때문에 결합도가 낮다.
상속 관계와 다르게, 유연하게 확장하고 수정이 가능하다는 장점이 있다. (모듈화)
그냥 추상 클래스만 쓰면 안 돼?
✏️ 추상 클래스는 일반 메서드와 추상 메서드를 모두 가질 수 있다.
반면 인터페이스는 모든 메서드에 구현이 없음을 보장한다.
interface Phone {
// 1. 어떤 구현체가 오든 받아줄 수 있게 타입형태로 제시하기 위함
// 2. 구현체(객체)가 필요 = 구현체 사용 = 메소드 호출
}
반응형
'Language > Java' 카테고리의 다른 글
첫 페어 프로그래밍 회고 .. w.버블정렬 (0) | 2024.04.05 |
---|---|
[Java] 자바 문법 (클래스의 구성 요소, 다형성) (0) | 2024.04.04 |
[Java] 개요, 문법 기초 (0) | 2024.04.03 |
[Java] 이클립스로 자바 처음 시작하기 (0) | 2022.01.01 |