Notice
Recent Posts
Recent Comments
Link
«   2024/09   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30
Archives
Today
Total
관리 메뉴

forest_moon

[Java] 자바, 객체지향! 인터페이스(interface) 본문

JAVA/inflearn정리

[Java] 자바, 객체지향! 인터페이스(interface)

rokga 2023. 4. 18. 00:47

한 객체가 다양한 역할을 수행할 수 있다. 이를 위한 개념. 인터페이스를 학습해보자.

  1. 인터페이스란
  2. 인터페이스 정의 및 구현
  3. 인터페이스의 장점

 

 

1. 인터페이스란

인터페이스란, 역할을 부여하는 것이다.

특징?

인터페이스는 추상 메소드로 구성된다. 추상 메소드란, 중괄호 내부가 없는 껍데기 메소드이다.

실생활 예

스마트폰은 알람, 전화기, 메신저의 역할을 한다.

 

2. 인터페이스의 정의 및 구현

코드 형식?

인터페이스의 형식은 아래와 같다.

interface NAME {
  // 프로토타입 메소드들..
}

코드 예

Alarm 인터페이스 만들어보자. 그 기능으로는 비프음 내기와 음악 재생을 추가한다. 메소드에 중괄호가 없음을 주의하자. 이러한 메소드를 추상 메소드라 한다.

 

interface Alarm {
  public void beep(); // 추상메소드
  public void playMusic(); // 추상메소드
}

 

인터페이스 구현을 선언

위에서 만든 인터페이스를 클래스에 구현하자. 이를 위해 implements 키워드를 사용한다.

// SmartPhone 클래스가 Alarm 역할을 수행하기로 함!
class SmartPhone implements Alarm {
  // 내부 구현 생략..
}

 

추상 메소드 오버라이딩

이제 Alarm 인터페이스의 모든 추상 메소드를 재정의(오버라이딩) 해야 한다. 중괄호 내부가 없기 때문이다.

 

class SmartPhone implements Alarm {
  // 프로토타입 메소드를 재정의!
  public void beep() {
    System.out.println("삐~ 삐삑, 삐비비빅!");
  }
  // 프로토타입 메소드를 재정의!
  public void playMusic() {
    System.out.println("아침 해가 빛나는~ 끝이 없는 바닷가!");
  }
}

 

3. 인터페이스의 장점

프로그램 설계의 명확성

인터페이스를 사용하면 프로그램 설계가 보다 명확해 진다.

관계성 부여

서로 다른 객체들이 같은 인터페이스를 구현한다면, 인터페이스를 타입으로 하여 업캐스팅 할 수 있다.

다형성

여러 인터페이스를 구현하게 함으로써, 한 객체를 여러 타입으로 해석할 수 있게 된다. 이러한 특징을 다형성이라 한다.

 

 

 

요약

 

인터페이스란

  • 인터페이스란, 역할을 부여하는 것이다.
  • 인터페이스는 추상 메소드로 구성된다.
  • 추상 메소드란, 중괄호 내부가 없는 껍데기 메소드이다.

인터페이스 정의 및 구현

  • 인터페이스 구현 시, implements 키워드를 사용한다.
  • 해당 인터페이스(역할)를 구현하는(부여받은) 클래스를 구현체 클래스라 한다.
  • 구현체 클래스는 모든 추상 메소드를 오버라이딩(재정의)해야 한다.

인터페이스의 장점

  • 프로그램 설계의 명확성
  • 서로 다른 객체에게 관계성 부여(업캐스팅 가능)
  • 한 객체를 다양한 인터페이스로 해석 가능(다형성)