Interface
Java는 클래스의 다중 상속을 허용하지 않기 때문에 다중 상속 기능이 필요한 경우에 클래스 대신 interface를 활용하여 구현한다.
interface의 특징
멤버는 추상 메소드와 상수로만 구성된다.
모든 메소드는 추상 메소드이며 선언시 abstract 생략 가능
모든 메소드는 public이며 선언시 public 생략가능
상수도 public static final을 생략하여 선언할 수 있음
인터페이스의 객체를 생성할 수 없다.
다른 인터페이스에 상속될 수 있다.
public interface Clock {
public static final int ONEDAY = 24;
abstract public int getMinute ();
abstract public int getHour ();
abstract void setMinute ( int I );
abstract void setHour ( int I );
}
public interface Car {
int MAXIMUM_SPEED = 260;
int moveHandle ( int degree );
int changeGear ( int gear );
}
Interface의 다중 상속 허용
interface MoblePhone {
public boolean sendCall();
public boolean receiveCall();
public boolean sendSMS();
public boolean receiveSMS();
}
interface MP3 {
public void play();
public void stop();
}
interface MusicPhone extends MobilePhone, MP3 {
public void playMP3RingTone();
}
Interface 구현
인터페이스 구현이란 인터페이스의 추상 메소드를 클래스에서 구현하는 것을 말한다.
interface USBMouseInterface {
void mouseMove();
void mouseClick();
}
interface RollMouseInterface {
void roll();
}
public class MouseDriver implements RollMouseInterface, USBMouseInterface {
void mouseMove() //{ …. } 구현
void mouseClick() //{ …. } 구현
void roll() { … }
// 추가적으로 다른 메소드를 작성할 수 있다.
int getStatus() //{ … } 구현
int getButton() //{ … } 구현
}
'Java' 카테고리의 다른 글
[Java] 패키지 (0) | 2022.12.04 |
---|---|
[Java] Interface - 도서 관리 프로그램 (0) | 2022.12.04 |
[Java] 상속 - 메시지 전송 프로그램 (0) | 2022.12.04 |
[Java] 상속 - 계좌 프로그램 (0) | 2022.12.02 |
[Java] 오버 로딩, 오버 라이딩 (0) | 2022.10.22 |