인터페이스
인터페이스란?
분리되어있는 객체를 사용할 수 있게 하는 약속이다. 인터페이스는 책임만 지게 하는 것이다.
- 부품이 분리 ( 여러개의 메서드를 가짐 )
- 코드의 일부분만 분리 ( 메서드에서 일부분만 분리 )
1. 인터페이스는 일종의 추상클래스이며 오직 추상메서드와 상수만을 멤버로 가질 수 있다. (JDK1.8부터 디폴트 메서드와 static 메서드도 가능하다.)
모든 멤버변수는 public static final이며 이를 생략가능하다.
ex) int bonus =10; // public static final int bonus =10;
모든 메서드는 pulbic abstract이며 이를 생략가능하다.
ex) int result(); // public abstract int result();
2. 인터페이스는 클래스와 달리 다중상속이 가능하다.
3. 상속받은 인터페이스의 메서드 중 일부만 구현한다면 abstract를 붙여서 추상클래스로 선언해야 한다.
인터페이스 장점
- 개발시간 단축
- 표준화 가능
- 서로 관계없는 클래스들에게 관계 맺어줌
- 독립적인 프로그래밍
추상클래스와 인터페이스의 차이
NewlecExam과 YBMExam이 있다.
NewlecExam : kor, eng, math, com / total(), avg()
YBMExam : kor, eng, math, toeic / total(), avg()
앞에 있는 이름 ( Newlec / YBM ) : 특화된 기능
뒤에 있는 이름 : ( Exam ) : 공통분모
개체들이 가지고있는 공통화(일반화) : 추상화
이러한 클래스 : 추상클래스
참고 자료 출처 :
https://www.youtube.com/watch?v=VuJHRyIq-w0&list=PLq8wAnVUcTFX4E2NplMvJfqlcgAeF_BxK&index=30
책 < 자바의 정석 >