일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 맥북 초보
- 백준 단계별로 풀어보기
- jsx 문법
- 리액트
- 자바 영어면접
- react state
- React props
- 자바 기술면접
- node.js
- 자바 개발자
- 백준 알고리즘
- 자바 인터뷰
- tech interview
- 자바 면접
- 맥북 필수 앱
- 알고리즘
- react jsx
- 생활코딩
- 맥북 사용법
- mysql
- 아톰에디터
- 백준
- Node.js Express
- React
- 기술면접
- Java tech interview
- 맥북 팁
- AtomEditor
- Express middleware
- 맥북 유용한 앱
- Today
- Total
song.log
[자바 기술면접] 15. 인터페이스 vs 추상클래스 본문
- 정의
인터페이스 : 메서드의 선언만 있고, 구현은 없는 추상적인 클래스의 일종입니다. 인터페이스는 구현을 담당하는 클래스들 사이의 규칙을 정의하는데 사용됩니다. 인터페이스를 구현하는 클래스는 인터페이스에서 선언된 메서드들을 반드시 구현해야 하며, 이를 통해 다형성과 코드의 재사용성을 높일 수 있습니다.
추상클래스 : 하나 이상의 추상 메서드를 포함하는 클래스입니다. 추상 메서드는 구현이 없는 메서드로, 하위 클래스에서 반드시 구현되어야 합니다. 추상클래스는 미완성된 클래스이기 때문에 인스턴스를 생성할 수 없습니다. 대신, 추상클래스를 상속받는 하위 클래스에서 추상 메서드를 구현하고 인스턴스를 생성할 수 있습니다. 또한, 추상클래스는 일반 메서드와 변수를 포함할 수 있으며, 이들은 하위 클래스에서 직접 상속받아 사용할 수 있습니다.
- 공통점
추상 메서드를 가진다.
인스턴스화 불가 (new 키워드 사용 불가)
인터페이스/추상클래스를 구현하거나 상속한 클래스는 해당 추상 메서드들을 모두 구현하여야 한다.
인터페이스/추상클래스를 상속받아 구현한 클래스의 인스턴스를 사용해야 한다.
- 차이점
인터페이스 | 추상클래스 | |
키워드 | interface | abstract |
변수 | 모두 가능 | static final (상수) |
접근 제어자 | 모두 가능 | public |
메소드 | 모두 가능 | abstract / default / static / private method |
상속 키워드 | implements | extends |
다중 상속 | 가능 | 불가능 |
- 영어 정리 :
Interface : a collection of abstract methods and constants that can be implemented by classes. It defines a set of methods that a class implementing the interface must provide. Interfaces are used to achieve abstraction and provide a mechanism for separating the declaration of behavior from the implementation. interfaces are an important feature of Java that enable abstraction, modularity, and code reuse.
Abstract class : a class that is declared with the abstract keyword and may or may not have abstract methods. An abstract class cannot be instantiated, which means you cannot create an object of that class directly. Instead, it is meant to be extended by concrete subclasses that implement the abstract methods.
'StudyLog > Java interview' 카테고리의 다른 글
[자바 기술면접] 17. String vs StringBuffer (0) | 2023.04.29 |
---|---|
[자바 기술면접] 16. 기본 데이터 유형 vs 참조 데이터 유형 (0) | 2023.04.29 |
[자바 기술면접] 14. 내부 클래스, 익명 클래스 (0) | 2023.04.29 |
[자바 기술면접] 13. this() vs super() (0) | 2023.04.29 |
[자바 기술면접] 12. 오버로딩 vs 오버라이딩 (0) | 2023.04.29 |