- 자식 클래스의 생성자가 호출되면, 자동으로 부모 클래스의 매개 변수 없는 생성자가 실행된다.
- 자식 클래스에서는 부모 클래스에 있는 public, protected로 선언된 모든 인스턴스 및 클래스 변수와 메소드를 사용할 수 있다.
-
메소드 Overriding은 부모 클래승의 메소드와 동일한 시그니처를 갖는 자식 클래스의 메소드가 존재할 때 성립된다.
-
Overriding된 메소드는 부모 클래스와 동일한 리턴 타입을 가져야만 한다.
-
Overriding된 메소드의 접근 제어자는 부모 클래스에 있는 메소드와 달라도 되지만, 접근 권한이 확장되는 경우에만 허용된다. 접근 권한이 축소될 경우에는 컴파일 에러가 발생한다.
-
참고 : 동일하게 선언되어 있다.
- 동일한 시그니처(signature)를 가진다.
- 시그니처는 메소드 이름과 매개 변수의 타입 및 개수를 의미한다.
- 자식 클래스의 생성자가 호출되면 자동으로 부모 클래스의 매개 변수가 없는 기본 생성자가 호출된다. 명시적으로 super()라고 지정할 수도 있다.
- 부모 클래스의 생성자를 명시적으로 호출하려면 super()를 사용하면 된다.
- 부모 클래스에 private로 선언된 변수를 제외한 모든 변수가 자신의 클래스에 선언된 것처럼 사용할 수 있다.
- 부모 클래스에 선언된 변수와 동일한 이름을 가지는 변수를 선언할 수도 있다. 하지만 이렇게 엎어 쓰는 것을 권장하지 않는다.
- 부모 클래스에 선언되어 있지 않는 이름의 변수를 선언할 수 있다.
- 변수처럼 부모 클래스에 선언된 메소드들이 자신의 클래스에 선언된 것처럼 사용할 수 있다.
- 부모 클래스에 선언된 메소드와 동일한 시그니처를 사용함으로써 메소드를 overriding할 수 있다.
- 부모 클래스에 선언되어 있지 않은 이름의 새로운 메소드를 선언할 수 있다.