본문 바로가기

Java

상속 / 인터페이스 / 추상클래스

어떻게 보면 비슷해 보이는 상속, 인터페이스, 추상클래스!

 

이 셋의 차이를 정리해보려고 합니다. 

 

상속

부모클래스(기존)의 변수와 메소드를 그대로 가지면서 추가적인 기능도 가지는 클래스(자식)를 새로 만드는 것

 

ex) 견과류(부모) - , 호두(자식)

코드중복을 줄여주고 외부적으로 볼 때 묶어서 처리하기 때문에 효율적입니다.

 

 

인터페이스

껍데기만 있는 클래스, 클래스의 템플릿, 여러 클래스의 사용 방법이 같음을 보장

자신을 implement하는 클래스들에게 메서드 구현을 강제시킴, 규격 맞추기

추상메서드와 상수만을 멤버로 함, 다중상속가능

 

ex) List인터페이스를 implement하는 클래스들 - ArrayList, LinkedListadd(),get()...가짐

 

 

추상클래스

추상메소드를 하나이상 가진 클래스 -> 하위 클래스를 제어하기위해 사용

 

InterfaceAbstract 모두 New로 인스턴스 생성 X, 사용하기 위해 하위클래스에서 구현해야하지만 Interface는 메서드 선언만 가능하고 Abstract는 일반 메서드를 사용할 수 있다.

 

궁극적으로 추상클래스는 상속을 통해 기능 확장의 목적,

인터페이스는 구현 객체들에게 동일한 동작을 약속하기 위한 것!

 

 

728x90
반응형