메서드는 모든 게 추상 메서드여야 가능
인터페이스는 다중 상속도 가능하지만 충돌 위험성이 있기에 주의해야함
클래스는 하나만 상속 가능하소 인테페이스는 여러 개를 구현 가능
다중 인터페이스를 구현 시 같은 이름의 메서드로 인해 오버라이딩 충돌이 나지 않게 주의
인터페이스는 멤버 변수를 가지지 않음
상수만 허용이 되고 상태를 넣고 싶으면 구현 클래스에 넣어야 함
구현 클래스에서는 인터페이스의 모든 메서드를 반드시 구현해야 오류가 나지 않음
부모 클래스에 존재하는 메서드 이름, 매개변수 그리고 반환형이 자식 클래스와 동일해야 Override 사용 가능
접근 제어자가 부모보다 넓은 범위여야 Override 가능
package class01;
public interface Messenger { // 메신저 인터페이스
abstract public void sendMessage(); // 메시지 보내기
abstract public void receiveMessage(); // 메시지 받기
abstract public void deleteMessage(); // 메시지 삭제
abstract public void editMessage(); // 메시지 수정
}
package class01 ;
class KakaoTalk implements Messenger { // 카카오톡 클래스
@Override
public void sendMessage() {
System.out.println("카카오톡 메시지를 전송합니다.");
}
@Override
public void receiveMessage() {
System.out.println("카카오톡 메시지를 수신했습니다.");
}
@Override
public void deleteMessage() {
System.out.println("카카오톡 메시지를 삭제했습니다.");
}
@Override
public void editMessage() {
System.out.println("카카오톡 메시지를 수정했습니다.");
}
}
class Discord implements Messenger { // 디스코드 클래스
@Override
public void sendMessage() {
System.out.println("디스코드 메시지를 전송합니다.");
}
@Override
public void receiveMessage() {
System.out.println("디스코드 메시지를 수신했습니다.");
}
@Override
public void deleteMessage() {
System.out.println("디스코드 메시지를 삭제했습니다.");
}
@Override
public void editMessage() {
System.out.println("디스코드 메시지를 수정했습니다.");
}
}
public class Test02 {
public static void main(String[] args) {
Messenger messenger = new KakaoTalk();
messenger.sendMessage();
messenger.receiveMessage();
messenger.editMessage();
messenger.deleteMessage();
System.out.println("---------------------");
messenger = new Discord();
messenger.sendMessage();
messenger.receiveMessage();
messenger.editMessage();
messenger.deleteMessage();
}
}
'수업 복습' 카테고리의 다른 글
| Java MVC 복습 & 코드 필사 (0) | 2025.10.28 |
|---|---|
| Java 복습 & 코드 필사 (0) | 2025.10.27 |
| Java Thread & MVC (0) | 2025.10.24 |
| 복습 Java 이론 (0) | 2025.10.20 |
| 복습 함수 (0) | 2025.10.18 |