loading

프로그래밍/JAVA

[JAVA/에러] No enclosing instance of type Overriding is accessible... 에러 해결 방법

침착곰 2021. 5. 16. 00:03
반응형

안녕하세요

자바 개발을 하는 중에 class에서 다른 class를 호출하는데 아래와 같이 에러가 뜨는 경우가 있을 겁니다

에러 코드입니다

No enclosing instance of type Overriding is accessible. 
Must qualify the allocation with an enclosing instance of type 
Overriding (e.g. x.new A() where x is an instance of Overriding).

 

에러 이미지입니다

 

 

순간 당황스러웠지만 제 경우에는 그렇게 해결하기 힘든 에러는 아니었습니다!

에러의 원인과 해결 방법에 대해서 알아보겠습니다

 


 

에러 원인

위의 에러를 번역하면 

No enclosing instance of type Overriding is accessible.

-> 인스턴스가 에워싸지 않아 오버라이딩 유형이 접근할 수 없습니다.

Must qualify the allocation with an enclosing instance of type Overriding

-> 오버라이딩 유형의 인스턴스가 에워싸져있는지 확인해야합니다

(e.g. x.new A() where x is an instance of Overriding).

-> (예 : x.new A() 여기서 x는 A의 오버라이딩의 인스턴스입니다

발 번역이지만 대충 이런 느낌의 에러입니다 ㅠ

틀린 부분이 있다면 댓글을 부탁드려요...

 

아래의 코드를 보면 class안에 class를 또 정의해버려서 상속자를 받지 못해 생기는게 원인이었습니다 ㅎㄷ

package Blog;

public class Overriding {

	public static void main(String[] args) {
		Child child = new Child();
		
		child.blog = "CrazyKim";
		child.Period = 6;
	}
	
	// 부모 클래스 선언
	class Mother {
		public String blog;
		public int Period;
		
		public void CrazyKim() {
			System.out.println(blog + "의 블로그는 만들어진지 " + Period + "년이 됐습니다.");
		}
	}
	
	// 자식 클래스 선언
	class Child extends Mother {
		public String blog;
		
		public void CrazyKim() {
			super.CrazyKim();
			System.out.println(blog + "의 블로그입니다.");
		}
	}
}

 


해결 방법

코드를 아래와 같이 수정하여 에러를 해결하였습니다!

부모, 자식 클래스를 클래스밖으로 빼서 소스를 수정하였습니다

public class Overriding {

	public static void main(String[] args) {
		Child child = new Child();
		
		child.blog = "CrazyKim";
		child.Period = 6;
	}
}

// 부모 클래스 선언
class Mother {
	public String blog;
	public int Period;
	
	public void CrazyKim() {
		System.out.println(blog + "의 블로그는 만들어진지 " + Period + "년이 됐습니다.");
	}
}

// 자식 클래스 선언
class Child extends Mother {
	public String blog;
	
	public void CrazyKim() {
		super.CrazyKim();
		System.out.println(blog + "의 블로그입니다.");
	}
}

 

여기까지 위와 같이 에러가 났을 경우 에러를 해결하는 방법에 대해서 알아봤습니다

아마 에러의 원인이 이거 하나이지는 않을 것 입니다

하지만 에러를 잡는데 제 글이 도움이 되었으면 좋겠습니다!

반응형
그리드형