모아이티

[면접질문] JAVA 인터페이스 & 추상클래스 공통점과 차이점 본문

면접질문

[면접질문] JAVA 인터페이스 & 추상클래스 공통점과 차이점

Yun's kitchen 2021. 11. 10. 10:26

추상 클래스

-> 추상 클래스의 목적은 공통적인 기능을 하는 객체들의 추상화다.

-> 클래스는 어떤 인스턴스를 생성할 수 있지만, 인터페이스는 객체 생성이 불가능하다.

왜? 추상화된 클래스니까

-> 추상 클래스를 언제 사용할까? 만들어야 할 여러 클래스들의 공통점을 찾아 추상화시켜 사용하는 것이 맞을 때 사용하는 게 옳다.

 

ex) 모든 가전제품에는 on/off 기능이 있다. 이러한 공통적인 기능은 추상 클래스로 만들고 개별적인 기능(냉장고의 차가워지는 기능, 전자레인지의 물건을 데워주는 기능)들은 개별적으로 개발해준다.

 

-> java의 특성 중에는 다중 상속이 불가능하다는 점이 있다.

인터페이스

-> 인터페이스는 구현하는 모든 클래스에 대해 특정한 메서드가 반드시 존재하도록 강제하는 역할이다.

-> 즉 구현 객체가 같은 동작을 한다는 것을 보장하기 위한 목적이다.

ex) human 클래스를 생성해 walk(메서드)를 생성해 본다고 하자! 그럼 나, 엄마, 아빠 클래스가 있다고 하면

각 클래스에 walk 메서드를 구현할 수 있다.

-> 인터페이스는 다중 상속이 가능하다.

-> 포인트는 다중 상속의 문제가 아니라 목적이 다르다는 걸 중점으로 여겨야 한다.

공통점

-> 추상 클래스와 인터페이스는 선언만 있고 구체적인 구현 내용이 없다.

-> 추상클래스 & 인터페이스는 새로운 인스턴스 즉 객체 생성이 불가능하다.

-> 결국 자식 클래스가 무언가 반드시 구현하도록 할 때 사용해야 한다. (BoradServiceImpl이 자식 클래스)

public class BoardServiceImpl implements BoardService

 

출처

 

JAVA 인터페이스와 추상클래스 공통점, 차이점 정리

인터페이스(Interface) 와 추상클래스(Abstract class) - 공통점 : 추상클래스와 인터페이스는 선언만 있고 구현 내용이 없는 클래스다. (자바8부터 인터페이스에 default method 구현이 가능해졌지만 일반

jeong-pro.tistory.com

 

Comments