수업 복습

Java interface 복습

_김영인 2025. 10. 26. 04:20

메서드는 모든 게 추상 메서드여야 가능

 

인터페이스는 다중 상속도 가능하지만 충돌 위험성이 있기에 주의해야함

 

클래스는 하나만 상속 가능하소 인테페이스는 여러 개를 구현 가능

 

다중 인터페이스를 구현 시 같은 이름의 메서드로 인해 오버라이딩 충돌이 나지 않게 주의

 

인터페이스는 멤버 변수를 가지지 않음

 

상수만 허용이 되고 상태를 넣고 싶으면 구현 클래스에 넣어야 함

 

구현 클래스에서는 인터페이스의 모든 메서드를 반드시 구현해야 오류가 나지 않음

Override 를 붙여서 오타를 재정비 가능하고 확실한 표시와 구분이 되어 가독성도 높여줄 수 있음

 

부모 클래스에 존재하는 메서드 이름, 매개변수 그리고 반환형이 자식 클래스와 동일해야 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