JAVA

인터페이스

영카이브 2024. 1. 28. 22:54

인터페이스란?

분리되어있는 객체를 사용할 수 있게 하는 약속이다. 인터페이스는 책임만 지게 하는 것이다. 

  • 부품이 분리 ( 여러개의 메서드를 가짐 ) 
  • 코드의 일부분만 분리 ( 메서드에서 일부분만 분리 )

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

https://inpa.tistory.com/entry/JAVA-%E2%98%95-%EC%9D%B8%ED%84%B0%ED%8E%98%EC%9D%B4%EC%8A%A4-vs-%EC%B6%94%EC%83%81%ED%81%B4%EB%9E%98%EC%8A%A4-%EC%B0%A8%EC%9D%B4%EC%A0%90-%EC%99%84%EB%B2%BD-%EC%9D%B4%ED%95%B4%ED%95%98%EA%B8%B0

책 < 자바의 정석 >