일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 자바
- 개발자 이직
- extends
- implements
- Where
- Class
- MariaDB
- 스프링
- jqgrid 개념
- Javascript
- 어노테이션
- JQuery
- View
- HTTP
- 트랜잭션
- jqGrid
- ResponseBody
- mysql
- 정보처리기사 필기
- ModelAndView
- 제이큐그리드
- HTML
- 정처기 합격
- JVM Heap
- 정보처리기사 합격
- Model
- spring
- ModelMap
- SQL
- java
- Today
- Total
크리스의 개발일기
[JAVA] 추상클래스와 인터페이스의 차이 본문
인터페이스는 무엇인가?
인터페이스는 쉽게 말하면 껍데기라고 말할 수 있고, 설계도 또는 명세라고 생각하면 된다.
모든 메소드가 추상 메소드이고, 일반 변수를 가질 수 없다. (추상 클래스와 비교해보자)
그 의미는 인터페이스를 구현한 클래스는 모든 메소드를 강제적으로 구현해야한다.
선언 시 interface 키워드를 사용한다.
interface Vehicle {
abstract void run ();
abstract void move ();
}
추상 클래스는 무엇인가?
일반적으로 Java 에서 클래스는 2가지로 구분된다.
일반 클래스와 추상 클래스로 구분되어진다. (여기서 인터페이스는 클래스가 아니라는 것을 기억하고 넘어가자)
추상 클래스는 0개 이상의 추상 메소드(아직 구현되지 않은 메소드) 를 가지고, 일반 메소드, 일반 변수 또한 가질 수 있다.
그렇기에 인터페이스 역할도 하면서, 구현체도 가지고 있는 돌연변이 같은 클래스이다.
선언 시 키워드는 abstract 키워드를 사용한다.
abstract class Animal {
abstract void bark();
void feed() {
.....
}
}
인터페이스와 추상 클래스는 어떻게 사용할 수 있는가?
인터페이스를 상속하기 위해서는 implements 키워드를 사용한다.
추상 클래스를 상속하기 위해서 extends 키워드를 사용한다.
공통점과 차이점
공통점
추상클래스(abstract class)와 인터페이스(interface)를 공부하다보면 굉장히 비슷하다는 것을 알 수 있다.
둘다 자식클래스에게 구현을 강조해 틀을 잡는 역할을 한다.
그리고 new로 객체를 생성할 수 없고 추상클래스는 상속, 인터페이스는 구현을 통해 객체를 생성해야 한다.
차이점
추상클래스- 참조 타입(reference type)이 class다.
인터페이스- 참조 타입(reference type)이 interface다.
추상클래스- extends를 통해 객체를 생성 가능하다.(상속)
인터페이스- implements를 통해 객체를 생성 가능하다.
추상클래스- 클래스하나가 한번에 다중 상속 불가능(extends)
인터페이스- 인터페이스끼리 다중 상속도 가능하고 클래스는 인터페이스 다중 구현이 가능하다(implements)
※한 클래스에서 extneds와 implements를 동시에 사용 가능하다.
추상클래스- 메소드 구현이 가능하다. 그리고 추상클래스를 상속받은 자식클래스에서 그 메소드를 선택적으로 가져다 쓸 수 있다.
인터페이스- 메소드 구현이 불가능하다. 전부 abstract 메서드다.
출처 :
'JAVA' 카테고리의 다른 글
[JAVA] Model, ModelMap, ModelAndView 차이점 (0) | 2020.11.30 |
---|---|
[JAVA]extends, implements 차이 (0) | 2020.11.27 |
[JAVA]자바메서드 (수정) (0) | 2020.11.24 |
[JAVA] JSTL Core Tag란? (0) | 2020.11.20 |
[JAVA] 하이라키(Hierarchy) 구조란? (0) | 2020.11.17 |