Java에는 메소드에 사용할 수있는 네 가지 액세스 수정자가 있습니다.
public
-모든 클래스에서이 방법을 사용할 수 있습니다.
protected
-동일한 패키지의 클래스와 모든 패키지의 서브 클래스가이 메소드를 사용할 수 있습니다.
private
-이 클래스 만이 메소드를 사용할 수 있습니다.
no modifier
( "package private")-동일한 패키지의 클래스 만이 메소드를 사용할 수 있습니다.
자주 일어나는 일은 모든 서브 클래스가 사용할 수있는 수퍼 클래스에 유용한 메소드를 원한다는 것입니다. 그러나 다른 클래스 가이 메소드에 액세스하는 것은 의미가 없으며 어떤 의미에서는 캡슐화를 깨뜨릴 수 있습니다.
따라서이 유용한 메소드를 수퍼 클래스 public
또는 에서 선언해야합니다 protected
.이 패키지는 적어도 패키지의 다른 모든 클래스에 노출됩니다. 서브 클래스에서만 사용하기위한 것이지만.
subclasses-only
Java에 액세스 수정자가 없는 이유가 있습니까? 나에게는 매우 이상해 보인다. 뭔가 빠졌습니까?
또한 subclasses-only
액세스 수정자는 변수를 서브 클래스에만 노출하려는 경우에도 유용합니다. 나에게 많은 일이 일어난다.