본문 바로가기
JAVA & Spring/Error

[Java] java: poly.ex4.AbstractAnimal is abstract; cannot be instantiated 에러 해결 방법

by 알기 쉬운 코딩 사전 2024. 11. 23.
반응형

🚨 Java 실행시 발생한 에러 메시지

java: poly.ex4.AbstractAnimal is abstract; cannot be instantiated

 

 에러 발생 이유

추상 클래스 혹은 인터페이스를 직접 생성하여 사용할 경우 나타나는 오류 메시지입니다.
참고: Java에서 추상 클래스 혹은 인터페이스는 직접 생성이 불가능 합니다.

 

✅  해결 방법

추상 클래스를 생성할 경우에는 추상 클래스를 상속받은 클래스를 생성하여 사용해야 합니다.

인터페이스를 생성할 경우에는 인터페이스를 구현한 클래스를 생성하여 사용해야 합니다.

아래 소스코드를 참고해 주세요.

 

InterfaceAnimal.java

public interface InterfaceAnimal {
    void sound(); // public abstract
    void move(); // public abstract
}
참고: 인터페이스의 경우 메서드는 public abstract 접근제어자를 기본으로 사용합니다.
즉, public abstract void sound() 이지만, public abstract 접근제어자를 생략하여 사용합니다.

 

Cat.java

public class Cat implements InterfaceAnimal{
    @Override
    public void sound() {
        System.out.println("냐옹");
    }

    @Override
    public void move() {
        System.out.println("고양이 이동");
    }
}

 

InterfaceMain.java

public class InterfaceMain {
    public static void main(String[] args) {
        // 인터페이스 생성 불가
        // InterfaceAnimal interfaceAnimal = new InterfaceAnimal(); // 오류 발생

        Cat cat = new Cat();

        soundAnimal(cat);
    }
    private static void soundAnimal(InterfaceAnimal animal) {
        System.out.println("동물 소리 테스트 시작");
        animal.sound();
        System.out.println("동물 소리 테스트 종료");
    }
}
반응형

댓글