지식/Java
[Java] 상속과 구현, 인터페이스와 추상 클래스의 차이 (extends, implement, interface, abstract class)
초코비23
2022. 5. 4. 00:01
- 상속과 구현 의 특징과 차이
상속(extends) :
자식 클래스가 부모 클래스의 메서드 등을 상속받아 사용하며 자식 클래스에서 추가 및 확장을 할 수 있습니다.
이로 인해 재사용성, 중복성의 최소화가 가능합니다.
구현(implements) :
부모 인터페이스를 자식 클래스에서 재정의하여 구현하는 것을 말하며, 상속과 달리 반드시 인터페이스의 메서드를 재정의하여 구현해야 합니다.
상속은 일반 클래스, abstract(추상) 클래스를 기반으로 구현,
구현은 인터페이스를 기반으로 구현합니다.
- 추상 클래스와 인터페이스의 차이
추상 클래스와 인터페이스는 모두 반드시 부모 클래스(인터페이스)의 메서드를 재정의 하여야 합니다.
하지만 차이점은 사용 의도에 따라 다르게 구분됩니다.
예를 들어
추상 클래스 : 동물 이라는 추상 클래스에 하위 클래스들은 강아지, 고양이, 돼지, 소 등을 사용하며
인터페이스 : 울부짖기, 걷기, 밥 먹기, 물 마시기 등 행동을 명시하는 경우에 사용됩니다.
특징을 정리하면
추상 클래스 :
extends 키워드를 사용, 자신의 기능들을 하위 클래스로 확장 시킴
관련성이 높은 클래스 간에 코드를 공유하고 싶은 경우 사용합니다.
인터페이스 :
implements 키워드를 사용, 인터페이스에 정의된 메소드들을 목적에 맞게 기능을 구현
서로 관련성이 없는 클래스들이 인터페이스를 구현하게 되는 경우 사용합니다.