[자바 (JAVA)] 43. 인터페이스

귤's avatar
Feb 17, 2025
[자바 (JAVA)] 43. 인터페이스
💡
  • 구체적인 것을 만들기 전에 하는 것
  • ex) 사용 정의서, 갑과 을의 약속 등

인터페이스 특징

💡
✅ 인터페이스는 interface 키워드를 사용하여 정의
✅ 인터페이스는 상수와 추상 메소드로 구성되어 있다.
✅ 인터페이스 안의 모든 상수는 public static final 타입 (생략가능)
✅ 인터페이스 안의 모든 추상메소드는 abstract public 타입 (생략가능)
✅ 추상 클래스와 마찬가지로 인스턴스를 생성할 수 없다.
✅ 인터페이스는 래퍼런스 변수의 인터페이스 타입으로 사용될 수 있다.
✅ 인터페이스는 다른 인터페이스를 extends 키워드로 상속 받을 수 있으며, 다중 상속 (다중 - implements)이 가능하다.
✅ 클래스에서 인터페이스의 구현은 implements 키워드를 사용하여 구현할 인터페이스를 지정 후, 추상 메소드를 모두 오버라이드 하여 기능을 구현해야 한다.

인터페이스 장점 및 사용 이유

💡
☑️ 인터페이스는 협업을 용이하게 한다.
☑️ 변경, 교체에 용이하다. (OCP)
☑️ 다중 상속을 가능하게 한다.
package ex07.ch01; /* 삼성 리모컨, 엘지 리모컨 기능 : on, off */ interface Remocon { // interface는 무조건 public // 추상 메소드는 무조건 public abstract 임 public abstract void on();//public abstract 이게 회색인 이유 : 생략 가능해서. void off(); } class SamsungRemocon implements Remocon { @Override public void on() { System.out.println("삼성 리모컨 ON"); } @Override public void off() { System.out.println("삼성 리모컨 OFF"); } } class LGRemocon implements Remocon { @Override public void on() { System.out.println("엘지 리모컨 ON"); } @Override public void off() { System.out.println("엘지 리모컨 OFF"); } } public class Inter01 { static void start(Remocon r) { r.on(); } public static void main(String[] args) { Remocon sam = new SamsungRemocon(); Remocon lg = new LGRemocon(); start(sam); start(lg); } }
notion image
 
Share article

gyul