💡인터페이스(Interface)
1. 인터페이스의 개념
- 자바에서는 다중 상속은 불가하다. 하지만 인터페이스를 이용한다면 자바에서도 다중 상속이 가능하다.
- 추상메서드와 상수만을 멤버로 가질 수 있다.
- 인스턴스를 생성할 수 없고, 클래스 작성에 도움을 줄 목적으로 사용된다.
- 인터페이스 선언 시 interface 키워드를 사용하여 선언하면 되고, 인터페이스를 상속할 땐, extents키워드가 아닌 implements 키워드를 사용한다.
2. 인터페이스의 장점
- 대규모 프로젝트 개발 시 일관되고 정형화된 개발을 위한 표준화가 가능하다.
- 클래스의 작성과 인터페이스의 구현을 동시에 진행할 수 있으므로, 개발 시간을 단축할 수 있다.
- 클래스와 클래스 간의 관계를 인터페이스로 연결하면, 클래스마다 독립적인 프로그래밍이 가능하다.
- 유연한 설계가 가능하고 유지보수가 쉬워진다.
💡추상클래스(Abstract Class)
1. 추상클래스의 개념
- 하나 이상의 추상 메서드를 포함하는 클래스
- 반드시 사용되어야 하는 메소드르 추상 클래스에 추상 메서드로 선언해 놓으면, 해당 클래스를 상속받는 모든 클래스에서 추상 메서드를 반드시 재정의 해야 한다.
- 추상클래스와 메서드를 만들기 위해서는 abstract라고 표기해 주어야 한다.
- 동작이 정의되어 있지 않은 추상 메서드를 포함하고 있어 인스턴스를 생성할 수 없다. 상속받는 자식이 추상 메서드를 오버라이딩해야 인스턴스를 생성할 수 있다.
💡인터페이스(Interface) 와 추상클래스(Abstract Class) 차이점
- 추상클래스는 단일 상속만 가능하지만 인터페이스는 다중 상속이 가능하다.
- 추상클래스 구현 시 extends 키워드를 사용하지만, 인터페이스 구현 시에는 implements 키워드를 사용한다.
- 추상클래스는 abstract 메서드가 0개 이상 존재하지만, 인터페이스는 모든 메서드가 abstract이다.
- 추상클래스는 명시적으로 abstract를 사용해야 하지만, 인터페이스는 묵시적으로 abstract이다.
- 추상클래스는 일반 필드를 가질 수 있지만, 인터페이스는 상수 필드만 가질 수 있다.
📌Reference
http://www.tcpschool.com/java/java_polymorphism_interface
http://www.tcpschool.com/java/java_polymorphism_abstract
해당 글은 학습한 내용을 개인적으로 정리한 글입니다. 만약 틀린 부분이 있다면 댓글로 남겨주세요:D