클래스, 멤버변수, 메서드들은 외부로부터의 접근을 허용하는 정도에 따라서 수식어를 지정할 수 있다.
접근제한자 : public, protected, friendly(defualt), private
그 외 수식어 : final, static, abstract, synchronized, volatile, native, interface
public은 모든 곳에서 접근이 가능한 제한자이다.
같은 package에서만 접근을 허용하고, 다른 package에서 접근하려면 해당 Class를 상속받을 시에만 접근이 가능하다.
동일 package에서만 접근을 허용한다.
접근제한자가 생략되어 있을 경우 기본적으로 적용되는 제한자이다.
private은 같은 Class 내에서만 접근을 허용하는 제한자이다.
같은 java 파일의 다른 Class에서도 접근이 불가능하다.
상속받은 클래스에서도 상위 클래스의 private 멤버를 접근할 수 없다.
오버라이드할 경우 같거나 넓은 범위의 제한자로만 오버라이드할 수 있으므로 상위클래스에서 public method를 하위클래스에서 private으로 선언할 수 없다.