인터페이스와 추상클래스
객체지향 프로그래밍의 알파이자 오메가이지만 실제로 설명하려 하면 항상 헷갈리는 개념 집고가자
인터페이스란?
- 인터페이스는 기본 설계도 라고 할 수 있다. 상속받는 클래스에서는 이 인터페이스에 선언된 기능들을 반드시 정의해야 한다.
- 인터페이스는 다중 상속이 가능하다. 자바에서는 기본적으로 메소드 출처의 모호성 등 여러 가지 문제가 발생할 수 있어 클래스를 통한 다중 상속을 금지한다. 하지만 인터페이스는 상속받는 클래스에서 직접 구현하는 형태이므로 다중 상속 시 발생할 수 있는 문제를 최소화한다.
- 모든 메소드는 public abstract 이며, 모든 필드는 public static final 이다. 하지만 필드 및 메소드 들이 이와 같은 형태를 취해야 하므로, 자바에서는 이 키워드들을 생략할 수 있다. 이러한 생략을 보고 default 접근제어자 라고도 부른다.
- 상속받는 클래스에서는 implements 키워드를 통해 상속 받는다.
- 인터페이스는 인터페이스로부터만 상속을 받을 수 있다.
추상클래스란?
- 자바에서는 하나 이상의 추상 메소드를 포함하는 클래스를 가리켜 추상 클래스라고 한다.
- 추상 클래스는 객체 지향 프로그래밍에서 중요한 특징인 다형성을 가지는 메소드의 집합을 정의할 수 있도록 해준다.
- abstract class 로 클래스를 선언한다.
- 인터페이스와는 다르게 추상클래스 내부에 이미 구현이 된 메소드를 포함할 수 있다.
'Language > Java' 카테고리의 다른 글
서블릿(Servlet) (1) | 2024.07.16 |
---|---|
예외(Exception) 처리 (3) | 2024.07.16 |
스트링(string) (0) | 2024.07.16 |
가비지 컬렉션(GC) (0) | 2024.07.16 |
자바(JAVA) 빌더(builder) 패턴 (0) | 2023.01.05 |