접근 제어자가 private 또는 default인 멤버들은 상속되지 않는다기보다 상속은 받지만 자손 크래스로부터 접근이 제한되는 것이다.
상속관계 '~은 ~이다.(is-a)'
포함관계 '~은 ~을 가지고 있다.(has-a)'
자바에서는 단일 상속만을 허용한다. 그래서 하나 이상의 클래스로부터 상속을 받을 수 없다.
Object클래스는 모든 클래스 상속계층도의 최상위에 있는 조상클래스이다.
조상 클래스로부터 상속받은 메서드의 내용을 변경하는 것.
자손 클래스에서 오버라이딩하는 메서드는 조상 클래스의 메서드와
조상 클래스의 메서드를 자손 클래스에서 오버라이딩할 때
오버로딩(overloading) 기존에 없는 새로운 메서드를 정의하는 것(new)
오버라이딩(overriding) 상속받은 메서드의 내용을 변경하는 것(change, modify)
super는 자손 클래스에서 조상 클래스로부터 상속받은 멤버를 참조하는데 사용되는 참조 변수이다. 그래서 this와 마찬가지로 super역시 static메서드에서는 사용할 수 없다.
Object클래스를 제외한 모든 클래스의 생성자 첫 줄에 생성자, this() 또는 super()를 호출해야 한다. 그렇지 않으면 컴파일러가 자동적으로 'super();'를 생성자의 첫 줄에 삽입한다.
소스코드에 사용되는 클래스이름에서 패키지명을 생략할 수 있다.
제어자는 클래스, 변수 또는 메서드의 선언부에 함께 사용되어 부가적인 의미를 부여한다.
접근 제어자 public, protected, default, private
그 외 static, final, abstract, native, teansient, synchronized, volatile, strictfp
사용될 수 있는 곳 - 멤버변수, 메서드, 초기화 블럭
대상
멤버변수
메서드
사용될 수 있는 곳 - 클래스, 메서드, 멤버변수, 지역변수
대상
클래스
메서드
멤버변수, 지역변수
인스턴스 변수의 경우 final이 붙은 변수를 생성자에서 초기화 되도록 할 수 있다.
사용될 수 있는 곳 - 클래스, 메서드
대상
클래스
메서드
사용될 수 있는 곳 - 클래스, 메서드, 멤버변수, 생성자
private - 같은 클래스 내에서만 접근이 가능하다.
default- 같은 패키지 내에서만 접근이 가능하다.
protected - 같은 패키지 내에서, 그리고 다른 패키지의 자손 클래스에서 접근이 가능하다.
public - 접근 제한이 전혀 없다.
접근 범위
public > protected > default > private
접근 제어자를 사용하는 이유