기술블로그

인터페이스와 추상클래스 공통점 및 차이점

닥치고개돌 2020. 1. 12. 15:55
728x90

인터페이스와 추상클래스의 공통점

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

 - 그래서 자기 자신이 new를 통해 객체를 생성할 수 없으며, 상속받은 자식만이 객체를 생성할 수 있다.

 - 상속받은 자식이 구현을 반드시 하도록 해야할 때 사용한다.

 - JAVA에서는 type이 지정되있기 때문에 선언된 type과 자식의 type이 같아야만 한다.

 

인터페이스와 추상클래스의 차이점

인터페이스(Interface)

추상클래스(Abstract Class) 

 구현 객체의 같은 동작을 보장하기 위함

추상클래스를 상속받아 기능을 이용하고, 확장시키기 위함 

 다중 상속 가능

다중 상속 불가능 

 추상메서드만 가능

일반메서드+추상메서드 가능

 상수+추상메서드 형태

일반변수(가능)+일반메서드(가능)+추상메서드 형태 

 생성자와 일반변수를 가질 수 없음

생성자와 일반변수 모두 가질 수 있음 

 implments

extends 

 메서드 선언만 가능

메서드의 부분적인 구현이 가능 

 

 

**

인터페이스를 상속받는 클래스는 반드시 인터페이스에 있는 메서드를 다 구현해야 하지만, 추상클래스를 상속받는 클래스는 추상메서드만 구현하고 일반메서드는 사용하지 않아도 문제가 없다.

 

정리를 해보자면 인터페이스는 다형성에 초점을 맞추어 사용, 상속은 부모 - 자식의 관계로써 부모가 갖고있는 기능을 받을 수도 있고, 기능을 더 추가하거나 수정할 수도 있다.

728x90

'기술블로그' 카테고리의 다른 글

qmail  (0) 2020.07.08
php,CodeIgniter4로 객체지향프로그래밍 설계  (0) 2020.01.12
객체지향 프로그래밍이란? (OOP 정리)  (0) 2020.01.12