인터페이스와 추상클래스는 추상 메서드를 가지고, 객체 생성이 불가능하다는 공통점이 있다.
언뜻 동일해 보이기 때문에 그 둘을 알아보고 차이점도 정리해보자.
클래스와 달리 객체를 생성할 수 없고 메소드만 존재한다. (설계도, 껍데기에 비유할 수 있다)
그렇다면 인터페이스를 사용하는 이유는 무엇일까?
인터페이스를 사용함으로써 객체가 다양한 자료형을 가질 수 있기 때문이다. (oop의 다형성) 이것이 무엇에 좋냐하면,
하나의 규약같은 개념이기 때문에 협업에 필수적이고, 큰 프로젝트일수록 또는 개발 인원이 많을 경우 인터페이스를 통해 많은 이점을 얻게 된다고 한다.
class대신 interface
키워드를 사용하고 extends대신 implements
키워드를 사용한다.
클래스의 공통된 부분을 뽑아서 별도의 클래스(추상클래스)로 만들어놓고 이것을 상속해서 사용한다.
상속을 통해서 자손 클래스에서 완성하도록 유도하는 클래스로 상속을 위한 클래스라고 말할 수 있다.
그렇기 때문에 따로 객체를 생성할 필요가 없다.
🎈 추상클래스의 특징
abstract
클래스를 상속하기 위해서는 extends
이용abstract
메서드를 가지며 상속한 클래스에서 반드시 구현해야함그렇다면 이 둘의 차이점은 무엇일까?
참고 | 자바의 추상클래스와 인터페이스
참고 | 추상클래스 vs 인터페이스
참고 | 추상클래스, 인터페이스 왜 사용할까?
참고 | 자바 인프런 강의자료