JAVA/JAVA
[JAVA] 인터페이스
우와왕고기다
2023. 12. 22. 16:20
인터페이스
코드 수행부가 없는 추상 메서드로 구성 된다.
오버라이딩을 통한 다양한 동작을 목적으로 한다.
인터페이스의 상속은 implements키워드이다.
- 다형성 : 한 대상이 다양한 형태로 동작 또는 해석된다.
- 유연성 : 다양한 요구사항을 수용하는 성질이다.
구현체 클래스는 인터페이스의 모든 추상 메서드를 반드시 재정의해야 한다.
interface Alarm{
//
public abstract void playMusic(String title);
// public abstract 코드가 없어도 암묵적으로 적용된다.
void beep();
}
class SmartPhone implements Alarm{
private String phoneNumber;
@Override
// 추상메서드는 반드시 오버라이딩을 해줘야한다.
public void playMusic(String title) {
// TODO Auto-generated method stub
System.out.printf("[%s]이 재생됩니다..\n", title);
}
@Override
public void beep() {
// TODO Auto-generated method stub
System.out.println("삐삐삐삐삐삐삐삐삐삐");
}
}
public class AlarmTest {
public static void main(String[] args) {
Alarm a = new SmartPhone();
a.playMusic("상어");
a.beep();
}
}
인터페이스는 다중 상속이 가능하다
interface Alarm{
//
public abstract void playMusic(String title);
void beep();
}
interface Phone{
//
public abstract void call(String title);
public abstract void receive();
}
interface Messenger{
//
void sendMsg(String phoneNum, String msg);
void receiveMsg();
}
class SmartPhone implements Alarm, Phone, Messenger{
private String phoneNumber;
@Override
// 추상메서드는 반드시 오버라이딩을 해줘야한다.
public void playMusic(String title) {
// TODO Auto-generated method stub
System.out.printf("[%s]이 재생됩니다..\n", title);
}
@Override
public void beep() {
// TODO Auto-generated method stub
System.out.println("삐삐삐삐삐삐삐삐삐삐");
}
@Override
public void sendMsg(String phoneNum, String msg) {
// TODO Auto-generated method stub
System.out.printf("[%s]로 메세지 전송: %s\n", phoneNum, msg);
}
@Override
public void receiveMsg() {
// TODO Auto-generated method stub
System.out.println("메세지가 도착하였습니다.");
}
@Override
public void call(String phoneNum) {
// TODO Auto-generated method stub
System.out.printf("[%s]로 전화를 겁니다..rrr\n", phoneNum);
}
@Override
public void receive() {
// TODO Auto-generated method stub
System.out.println("전화를 받습니다.");
}
}
public class AlarmTest {
public static void main(String[] args) {
SmartPhone sp = new SmartPhone ();
sp.playMusic("상어송");
sp.call("010-1234-5678");
sp.sendMsg("010-1234-5678", "자니?");
}
}