Notice
Recent Posts
Recent Comments
Link
«   2025/05   »
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
Archives
Today
Total
관리 메뉴

기록 저장소

추상클래스와 인터페이스 본문

Note/개념정리

추상클래스와 인터페이스

resault 2019. 8. 17. 11:01

1. 추상클래스

- 실체 클래스의 공통 부분을 추출하여 선언한 클래스로, 추상 메소드를 하나 이상 가진 클래스를 말한다.

- abstract 키워드를 사용하여 선언한다. 

- 직접 객체를 생성할 수 없다.

- 추상클래스를 상속하는 자식클래스는 모든 추상 메소드를 오버라이딩해야 한다.

2. 인터페이스

- 객체의 사용 방법을 정의한 타입이다.

- interface 키워드를 사용하여 선언한다.

- 상수와 메소드만을 가지며, 자바8 부터는 디폴트 메소드와 정적 메소드를 선언할 수 있다.

- 하위 클래스에서 implement 키워드를 통해 인터페이스를 구현하거나, 익명 구현 객체를 생성하여 구현할 수 있다.

- 상속과 달리 다중 구현이 가능하다.

- 하위 클래스에서는 인터페이스에서 선언된 추상 메소드를 오버라이딩해야 한다.

- 인터페이스도 다른 인터페이스를 상속할 수 있으며, 클래스와는 달리 다중상속이 가능하다.

3. 차이점

- 추상클래스는 is a 관계를, 인터페이스는 has a 관계를 표현한다.

- 추상클래스는 상속으로 하위 클래스에서 구체화되기에 자식클래스는 하나의 추상클래스만 상속할 수 있으나, 인터페이스는 다중 구현이 가능하다.

- 추상클래스와 달리, 인터페이스에서는 상수가 아닌 필드를 선언할 수 없다.

 

 

 

 


 

 

 

[ 참고 ]

 

 

* Reference

https://hamait.tistory.com/650

 

[Java 8] 인터페이스 vs 추상 클래스

인터페이스 vs 추상 클래스 예전에 이 캐캐묵은 논쟁에 대한 글을 쓴적이 있었는데 , 그 중 일부를 발췌해보면 " 먼저 왜 자바는 인터페이스를 만들게 됬나를 생각해야 하며 , 다중상속은 이 둘을 구분하는데 중요..

hamait.tistory.com

 

 

'Note > 개념정리' 카테고리의 다른 글

String과 StringBuffer  (0) 2019.08.17
Call by value와 Call by reference  (0) 2019.08.17
오버로딩(Overloading)과 오버라이딩(Overriding)  (0) 2019.08.15
프로세스(Process)와 스레드(Thread)  (0) 2019.08.14
자바(Java)의 특징  (0) 2019.08.14