티스토리 뷰
728x90
반응형
목차
Abstract Class
자바에는 abstract라는 제어자가 있다. 이는 직역하면 '추상적'이라는 뜻인데,
이 맥락에서는 '미완성'이라고 받아들여도 크게 틀리지 않는다.
해당 제어자는 주로 클래스와 메서드를 정의할 때 사용되는데, 이를 각각 추상 클래스와 추상 메서드라 부른다.
계속해서 추상 메서드는 미완성이라는 이름대로 시그니처만 있고 바디가 없으며,
추상 메서드를 하나 이상 포함하면 추상 클래스가 된다.
또한 추상 클래스 역시 미완성이기 때문에 이를 기반으로 객체를 생성할 수가 없으므로
상속과 오버라이딩을 통해 메서드를 완성시켜 사용해야 한다.
이는 보통 클래스보다 추상화의 정도가 높으며 OOP의 추상화를 달성하는데 도움을 준다.
Interface
인터페이스는 추상 클래스에서 한 걸음 더 높은 추상성을 가진다.
구체적으로 비교하자면
- 추상 클래스는 추상 메서드를 하나 이상만 포함하면 되지만 인터페이스는 오로지
public abstract 추상 메서드와 public static final 상수만을 멤버로 가질 수 있다. - 생성 시 class 대신 interface 키워드를 사용해야 하며,
클래스를 상속(extends) 받는 것과 비슷하게 인터페이스는 구현(implements)해서 사용해야 한다. - 상속과 다르게 인터페이스를 구현한 클래스는 해당 인터페이스의 모든 추상 메서드를 구현해야 한다.
- 역시 상속과 다르게 하나의 클래스가 두 개 이상의 인터페이스를 다중으로 구현할 수 있다.
정도가 차이점이며, 더 높은 추상성을 바탕으로 역할과 구현을 분리시켜 코드 변경의 번거로움을 최소화한다는 장점이 있다.
반응형
'Development > Technical Interview' 카테고리의 다른 글
[면접 준비 - Algorithm]Stack, Queue, Tree, Graph (1) | 2022.12.14 |
---|---|
[면접 준비 - Java]제네릭(Generic)에 대하여 (4) | 2022.12.14 |
[면접 준비 - Java]static 키워드에 대하여 (2) | 2022.12.14 |
[면접 준비 - Spring]Spring Boot 프로젝트에서 yml profile 설정 (2) | 2022.12.13 |
[면접 준비 - Spring]JUnit, Hamcrest, Assertion (0) | 2022.12.13 |
[면접 준비 - Spring]트랜잭션(Transaction)에 대하여 (0) | 2022.12.13 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- 자바
- 중남미
- 야경
- 맛집
- spring
- java
- 지지
- 세계여행
- 파이썬
- a6000
- 남미
- RX100M5
- 동적계획법
- Python
- 기술면접
- 여행
- 유럽여행
- Backjoon
- 칼이사
- 스프링
- 세모
- Algorithm
- 리스트
- 세계일주
- 유럽
- 알고리즘
- 백준
- 스트림
- BOJ
- 면접 준비
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
글 보관함