interface 인터페이스 이름 {
public static final 타입상수이름 = 값; // 상수
public abstract 메서드이름;
}
모든 인터페이스 멤버는 public,static,final이어야함(생략가능), 몸통이 없음
class 클래스 이름 implements 인터페이스 이름 {
// 인터페이스에 정의된 추상메서드를 모두 구현해야 한다.
}
implements : 구현
Q1. 인터페이스란?
A1. 추상메서드의 집합(핵심) + 그 외(상수, static, 디폴트메서드, 핵심은 아님)
Q2. 인터페이스의 구현이란?
A2. 인터페이스 추상메서드 몸통({ }) 만들기
Q3. 추상클래스와 인터페이스의 공통점?
A3. 추상메서드(미완성 메서드)를 가지고 있다.
Q4. 추상클래스와 인터페이스의 차이점?
A4. 인터페이스는 iv를 가질 수 없다.
abstract class Player { // 추상 클래스(iv,생성자,추상 메서드,인스턴스 메서드를 가짐)
boolean pause; // iv
int currentPos;
Player() { // 생성자
pause = false;
currentPos = 0;
}
abstract void play(int pos); // 추상메서드
abstract void stop();
void play() { // 인스턴스메서드
play(currentPos);
}
}
interface Fightable { // 인터페이스(구현x, 추상메서드만)
void move(int x, int y);
void attack(Unit u);
}