에러(error)
cannot be accessed from outside package
원인(cause)
다른 pacakge에 있는 class를 참조하는 경우, 해당 class가 public으로 정의되어 있지 않은 경우발생한다.
발생하는 예로 A package에 abstract class 만들어 놓고 B pacakage에서 상속받아 사용하려는데, 해당 abstract class가 public으로 정의되어 있지 않았기 때문에 A package에 존재는 하지만, B package에 접근할 수 없다는 error가 발생하는 것이다.
해결(solution)
사용하려는 class의 접근 제어자(access modifier)를 public으로 수정한다.
재현(reproduce)
package com.test.A > SampleParent.java
abstract class SampleParent { // 다른 package에서 사용가능하게 하려면 public 으로 정의해야 한다.
...
}
package com.test.B > SampleChild.java
import com.test.A.SampleParent; // error 발생
public class SampleChild extends SampleParent {
...
}