Java - Interface

iseon_u·2022년 5월 7일
0

Java

목록 보기
33/77
post-thumbnail

Interface 인터페이스


프로그래밍 관점

  • 추상 메서드의 집합 ⭐
  • 인터페이스의 핵심은 추상 메서드
  • 구현된 것이 전혀 없는 설계도. 껍데기 (모든 멤버가 public)
  • static 메서드, 상수, default 메서드는 부수적 요소 (JDK 1.8부터 추가)
  • 변수 (iv, cv), 생성자, 인스턴스 메서드 사용 불가 (추상 클래스와 인터페이스의 차이점)

interface  PlayingCard{
		public static final int SPADE = 4; // 상수
		int DIAMOND = 3; // public static final 생략 가능
		public abstract String getCardNumber(); // 추상 메서드
		String getCardKind(); // pubic abstract 생략 가능
}
  • 인터페이스의 메서드는 항상 public abstract 가 붙기 때문에 일부 또는 전부 생략 가능
  • 인터페이스의 상수는 항상 public static final 이 붙기 때문에 일부 또는 전부 생략 가능

인터페이스의 상속

interface Fightable extends Movable, Attackable {} // 다중 상속

interface Movable {
		void move (int x, int y);
}

interface Attackable {
		void attack(Unit u);
}
  • 인터페이스의 조상은 인터페이스만 가능
  • Object 클래스가 최고 조상이 아니다.
  • 다중 상속 가능, 추상 메서드는 충돌해도 문제 없음

인터페이스의 구현

  • 인터페이스에 정의된 추상 메서드를 완성하는 것
interface Fightable {
		void move(int x, int y);
}
class Fighter implements Fightable {
		public void move(int x, int y) {} // 인터페이스에 정의된 추상 메서드를 모두 구현해야한다.
}
  • 추상 클래스 완성과 동일 ( = 추상 메서드 구현)
  • extends 대신 implements 키워드 사용
  • 일부만 구현하는 경우, 클래스 앞에 abstract 키워드 사용
profile
🧑🏻‍💻 Hello World!

0개의 댓글