반응형
🚨 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("동물 소리 테스트 종료");
}
}
반응형
댓글