Computer Science/Java

[Java] 추상 클래스 (Abstract class)와 인터페이스(Interface)의 차이점

2021. 8. 18. 17:42

자바는 객체 지향 언어이다. 그래서 클래스(Class)를 생성하고 이로부터 객체를 만들어 이용한다. 이때 클래스는 틀, 객체는 틀로부터 나오는 제품이라고 이해하면 된다.

 

이와 관련하여 헷갈리는 두 가지 개념이 있다: 추상 클래스(Abstract class)인터페이스(Interface). 이를 정리하면 다음과 같다.

  • 추상 클래스는 틀을 만들어 두고, 이 틀을 기반으로 새로운 틀(자식 클래스)을 만드려는 목적 (상속).
  • 인터페이스는 틀을 만들어 두고, 이 틀에 여러 가지 객체를 바꿔끼워가며 사용하는 목적 (다형성).

"다형성(polymorphism)이란, 하나의 객체가 여러 가지 타입을 가질 수 있는 것을 의미"한다 (1). 물론 추상 클래스 (상속)을 다형성 측면에서 이용할 수 있기는 하지만, 인터페이스로 구현하는 경우가 더 많은 것 같다 (2).

 

Reference

  1. http://tcpschool.com/java/java_polymorphism_concept
  2. 이것이 자바다

 

 

728x90
반응형