상속의 장점
상속의 장점은 처음에 설명했던 것과 큰 차이가 없다. 중복된 코드를 줄일 수 있고, 유지 보수가 편리하며, 통일성이 있고 다형성을 구현할 수 있다
1. 상속 방법 : class 클래스(자식) extends 클래스(부모)
2. 자식 클래스는 부모 클래스로부터 메소드와 필드를 물려받아 사용한다. 부모 클래스는 자식 클래스에서 정의한 메소드나 필드를 사용하지 못한다.(자식 = 자신 + 부모 / 부모 = 자신)
3. 자식 클래스는 여러 부모 클래스로부터 상속받지 못한다. 즉, 단일상속만 가능하다.
4. 부모 클래스는 여러 자식 클래스에게 상속이 가능하다.
5. 자식 클래스가 더 다양한 기능이 가능하므로 자식 클래스로 인스턴스를 생성하는 것이 효율적이다.
자바의 클래스는 다중 상속이 불가능한 이유는 모호성이 발생하기 때문이다
상속할 떄의 메모리 구조
자식 클래스 객체에서 부모 클래스의 멤버를 사용할 수 있는 이유
=> JVM은 자식 클래스의 객체를 생성할 떄 가장 먼저 부모 클래스의 객체를 생성한 후 자식 클래스에서 추가한 필드와 메서드가 객체에 추가됨으로써 전체 객체가 완성된다. 즉, 자식 클래스 객체 내부에는 부모 클래스 객체가 포함돼 있으므로 자식 클래스 객체에서는 부모 클래스의 멤버를 사용할 수 있는것이다.
생성자의 상속 여부
상속을 수행하면 부모의 모든 멤버를 내려받는다고 했다. 멤버는 클래스의 4가지 내부 구성 요소 중 생성자를 제외한 필드, 메서드, 이너 클래스를 말한다. 생성자는 자식 클래스로 상속 되지 않는다. 그 이유는 클래스 내부에서는 필드, 메서드, 생성자, 이너 클래스 이외에 단 1줄도 올 수 없다. 부모 생성자를 볼 떄 생성자는 소괄호와 중괄호가 존재하기에 필드와 이너클래스에는 해당하지않고 생성자라고는 하기에는 자식클래스명과 다르기에 해당하지않는다 마지막으로 생성자는 리턴타입이 없기에 메서드도 될 수 없다. 따라서 상속과 동시에 오류가 발생하기에 상속될 수 없다.,