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 |