728x90
반응형
추상 클래스와 인터페이스의 공통점과 차이점
언제 사용되는지, 그리고 목적에 대해서 알아보는 글입니다.
추상클래스
추상 메소드를 하나라고 가지고 있는 클래스를 추상클래스로 분류 할 수 있다.
추상클래스로는 인스턴스를 생성할 수 없고, 추상클래스를 상속하는 자손클래스에 의해서만 완성될 수 있다.
이때 추상클래스를 상속하는 자손클래스는 반드시 추상메소드를 구현하여야한다, 또한 다중 상속이 불가능하다.
- 공통된 구현을 상위 클래스에서 뽑아서 사용하려고 사용한다.
- 추상클래스는 객체 생성이 불가능 하다.
- 하위 클래스를 참조하여 상위(추상) 클래스의 객체를 생성한다.
- extends 키워드 사용
사용목적
코드의 중복과 유지보수의 편의성
ex) 전자기기의 전원버튼
인터페이스
상수, 추상메소드만을 가지고 있는 클래스이며, 이를 구현하는 클래스는 인터페이스의 모든 메소드를 구현해야 한다.
다중 상속이 가능하다.
- 모든 메소드가 구현된 부분이 없는 추상메소드 형태로 이루어진 클래스
- 상속의 관계가 없는 클래스간의 서로 공통되는 로직을 구현하여 사용 할 수 있도록 한다.
- Implements 키워드 사용
사용목적
일부로 결합도가 낮은 코드를 만들어 협업과 유지보수가 용이해지도록 한다.
ex) 전자기기의 전원버튼
공통점
함수에 대한 선언만 하고, 구현하지 않는 메소드가 존재합니다.
자신을 인스턴스로 생성이 불가능하다.
추상메소드의 구현을 강제한다.
차이점
인터페이스 | 추상클래스 |
다중 상속이 가능하다. | 다중 상속이 불가능하다. |
추상 메소드만 사용이 가능하다. | 일반 메소드와 추상메소드 사용이 가능하다. |
생성자와 일반변수를 가질 수 없다 | 생성자와 일반변수를 모두 가질 수 있다. |
상속받은 클래스는 반드시 인터페이스에 있는 메서드를 모두 구현해야 한다. | 상속받는 클래스는 추상메서드만 구현해도 된다. |
Implements 사용 | Extends 사용 |
728x90
반응형
'Web Programming > 용어' 카테고리의 다른 글
JAVA 와 JavaScript 차이점은? (0) | 2021.07.29 |
---|---|
jsp / servlet(서블릿) (0) | 2021.07.28 |
클래스란? / 클래스의 개념 / 클래스(class) / 인스턴스(instance) (0) | 2021.07.27 |