Java100 Part.4 - 인터페이스

Jeong Woosi·2022년 2월 13일
0

Java100 Part.4

목록 보기
2/14

인터페이스란 무엇인가?

  1. 사전적 의미 ➡️ 결합부, 접속기 ➡️ 사용자간 또는 컴퓨터간 통신이 가능하도록 해주는 디바이스나 프로그램.
  2. 큰 틀에서 본다면 자바에서의 인터페이스 개념도 사전적 의미와 비슷하다.
  3. 상호간 통신을 위해서는 "규격"이 중요하다. ➡️ 일본이 110v 가전제품을 한국으로 가지고 와도 "규격"이 맞지 않으므로 사용할 수 없다.
  4. 일본의 가전기업들이 한국에서 전자제품을 팔고 싶다면 한국내 220v "규격"을 지켜서 만들어야만 팔 수 있다.
  5. 이러한 "규격"을 인터페이스라 할 수 있고, 인터페이스는 하나의 "표준화"를 제공하는 것이라 할 수 있다.

추상 클래스 vs 인터페이스?

  1. 추상 클래스와 거의 비슷하다. ➡️ 그러나 추상화 정도가 더 높다(더 엄격하다.) ➡️ 따라서, 일반 메소드 멤버 필드(변수)를 가질 수 없다.
  2. 이러한 점들이 추상 클래스와 인터페이스간 가장 큰 차이점중 하나이다. ➡️ 차이점이 더 있다...?!

자바에서의 인터페이스 문법?

  1. 표준화 및 규격을 인터페이스로 제공.
  2. 따라서 어떤 클래스가 해당 인터페이스를 사용(상속)한다면 인터페이스에 선언되어져 있는 메소드를 구현해야 한다.
  3. class ➡️ extends(O) / interface ➡️ extends(X), implements(O)
  4. 추상 클래스와 같이 메소드의 구체적인 내용은 기술되어져 있지 않으므로 인터페이스를 상속받은 클래스에서 재정의(오버라이딩)하여 사용해야 한다.
  5. 인터페이스는 interface 키워드를 사용.

상속 vs 구현

  1. 클래스와 인터페이스 이 둘의 가장 큰 차이점 중 하나는 "상속"이다. ➡️ a,b
  2. 자바에서 클래스는 "단일 상속"만 가능하지만, 인터페이스는 "다중 상속"이 가능하다.
  3. 그러나 인터페이스에서는 extends 표현을 쓰지 않고 "구현"의 의미를 강조하는 implements 키워드를 사용하여 다중 상속을 구현한다.
  4. 상속을 받는 extends 키워드와 구현을 하는 implements 키워드가 동시에 쓰일 때 ➡️ extends 키워드가 항상 먼저 쓰인다.

장점

  1. 인터페이스를 이용하면 메소드의 추상적인 "선언"과 그 메소드들을 구체적인 "구현"부분을 분리시킬 수 있다. ➡️ 매우 큰 장점.
  2. 하청을 주는 대기업(갑)은 하청업체(을)에 인터페이스만 제공 ➡️ 각 하청업체(을)들이 이를 준수하여(=상속 받아) 개발.
  3. 분업화된 시스템을 구축하여 "갑"과 "을"이 독립적으로 프로젝트 개발을 해나갈 수 있다. ➡️ 매우 큰 장점

public class Java100_oop_Interface2 {
	public static void main(String[] args) {
    
    	//[1]: 객체 생성
    
    }
}

// Person 클래스 (부모)

// A 인터페이스 (부모)

// B 인터페이스 (부모)

// Student 클래스 (자식)

// 메인 클래스 (메인 메소드가 포함)
profile
Let's start to Coding

0개의 댓글