인터페이스가
public
가 아니라고 지정하면 인터페이스와 동일한 패키지에 정의 된 클래스에서만 인터페이스에 액세스 할 수 있습니다.자바 튜토리얼은 패키지 개인 인터페이스를 가질 수 있다고 말합니다.
interface PPInterface {
void foo();
void bar();
}
class NewClass implements PPInterface {
void foo() {}
void bar() {}
}
은 NewClass
에서 컴파일러 오류를 생성합니다. 왜냐하면 "더 약한 액세스 권한을 할당하려고 시도하고 있습니다. 공개했습니다. ' 따라서 문서가 잘못되었거나 잘못되었거나 문서를 잘못 해석 한 것입니까?
나는 인터페이스를 사용할 필요가 없다고 생각합니다.
어, 다시 우리는 자바의 인터페이스 인 http : // stackoverflow의 접근 제한 제한으로 인해 추상적 클래스로 해킹을 강요 받고 있습니다.com/questions/5376970/protected-in-interfaces/5377300 # 5377300 – Pacerier
"인터페이스 유형은 패키지가 아닌 패키지 외부에서 볼 수 있습니다." 어떻게 보이지 않는 Type의 public 메소드에 액세스 할 수 있습니까? 나는 아직도 공용 메소드의 목적이 개인 클래스 (또는 인터페이스)라는 패키지에 무엇인지 이해하지 못합니다. –
@KorayTugay : 인터페이스 메소드는 실제 효과가 있는지 여부에 관계없이 항상 'public'입니다. 그러나 예를 들어, 일부 공용 인터페이스를 구현하거나 일부 공용 유형을 확장하는 패키지 개인 유형이있는 경우 공용 유형의 메소드를 대체하는 해당 클래스/인터페이스의'public' 메소드를 패키지 외부에서 사용할 수 있습니다. – ColinD