아하
생활

생활꿀팁

검붉은호박벌124
검붉은호박벌124

자바에서 추상 클래스, 인터페이스 차이를 자세히 알고 싶습니다.

사실 이와 같은 질문은 인터넷 검색으로도 충분히 나오는 내용입니다.

하지만, 대부분의 초보자들은 공감하실 거라고 생각하는데요.

답변의 내용들이 조금 추상적이라 이해하기가 어렵습니다.

공통점은 둘다 새로운 인스턴스(객체)를 생성할 수 없다.

이 정도 인것 같고,

차이점으로는,

첫 번째로, 인터페이스는 다중 상속이 되고,

추상 클래스는 다중 상속이 되지 않는다.

이거는 확실히 이해가 되었습니다.

그리고 두 번째 차이점으로는,

예전에는 추상 클래스에서는 추상 메소드 말고도 일반 메소드를 생성할 수 있고,

인터페이스는 추상 메소드 선언과 상수 정의만 가능하다는 차이로 이해를 했었는데요.

자바 8 버전이 나오면서 인터페이스에서도

default 메소드와 static 메소드를 생성할 수 있게 되면서

인터페이스에서도 구현 부분을 작성할 수 있게 되었잖아요.

그래서 제가 생각한 둘 사이의 차이점이 모호해졌습니다.

어디에서 보니 인터페이스와 추상 클래스의 차이를 목적의 차이라고 말하는데요.

추상 클래스는 공통적인 기능을 하는 객체의 추상화,

인터페이스는 관련 없는 객체들의 추상화에 사용을 한다고 하는데

이게 정확한 것인가요?

질문이 너무 길어졌네요.

결론을 말씀드리자면,

인터페이스와 추상 클래스의 차이점이 궁금합니다.

    3개의 답변이 있어요!