Programming Note/etc
Abstract class 와 Interface (extends, implements)
Skypotato(하늘감자)
2017. 3. 17. 01:13
※ Abstract class(추상 클래스)란?
- 한 개 이상의 '추상 메서드'를 포함하는 클래스이다.
- 예를 들면 '빈 칸 있는 시험지'와 비슷하다. (반드시 추상 메서드의 내용을 채워넣어야 한다.)
※ Abstract class의 특징
- 객체를 만들 수 없다.
- '추상 메서드' 구현을 위해 서브 클래스가 필요하다.
※ Interface(인터페이스)란?
- '상수'와 '추상 메서드'의 집합이다.
- 예를 들면 '빈 껍데기'와 비슷하다. (속 전체를 채워 넣어야한다.)
※ Interface의 특징
- 변수를 가질 수 없다. (멤버변수는 상수이다.)
- 모든 메서드는 public이어야 한다.
- 모든 메서드는 '추상 메서드'이다. (메서드의 내용이 들어갈 수 없다.)
※ Abstract class와 Interface의 차이
Abstract class |
Interface |
'추상 메서드'가 아닌 메서드도 포함할 수 있다. |
'추상 메서드'만을 포함한다. |
'변수'를 가질 수 있다. |
오직 '상수'만을 포함한다. |
extends 사용. |
Implements 사용. |
단일 상속만 가능. |
다중 상속 가능. |