[백업][가리사니] 인터페이스와 추상클래스
java

이 문서는 가리사니 개발자 포럼에 올렸던 글의 백업 파일입니다. 오래된 문서가 많아 현재 상황과 맞지 않을 수 있습니다.

공통점

  • 상속받아 구현하지 않은 상태로 인스턴스를 만들 수 없다.

추상 클래스 (abstract class)

  • 다중으로 상속 받아 사용할 수 없다.
  • 일반적인 클래스와 같지만 완성되지 않은 클래스로 추가적인 구현을 하여 사용하는 용도가 될 수 있다.
  • 상속 사용을 강제화 하는 용도로 사용할 수 있다.

인터페이스 (interface)

  • 다중으로 상속 받아 사용할 수 있다.
  • 클래스와 달리 구현된 몸체가 없으며, 오직 추상적인 선언만 존재한다. (물론 Java 8 에서 디폴트 메서드가 추가되어 자바의 클래스 다중상속이 되지않는 문제를 해결하려고 했다. : 즉 추상처럼 몸체를 쓸 수 있지만 순수한 인터페이스와는 다르게 봐야한다.)
  • 주로 규약을 만드는 용도이다.
  • 규약(선언부)을 이용하여, 표준화가 가능하다 (예를들어 JDBC의 Connection, Statement 등...)
  • 콜백 같은 규약으로도 사용할 수 있다.
  • 다중 상속을 할 수 있기 때문에 서로 다른 클래스에 관계적인 구심점이 될 수 있다.