부모(객체) ==> 자식(객체)
객체가 가지고 있는 속성과 기능을 물려준다 // from 부모 to 자식
부모가 물려줬을 때, 자식의 속성 + 기능을 함께 합치게 된다.
정리하자면, 자기만의 속성, 기능 + 부모의 속성, 기능을 합친 것이다.
코드길이 감소 :
보다 적은 양의 코드로 새로운 클래스 작성 가능
코드의 재사용성 :
코드를 공통적으로 관리하기 때문에 코드의 추가 및 변경 용이
유지보수 증가 :
코드의 중복을 제거하여, 프로그램의 생산성과 유지보수에 크게 기여
클래스의 재사용, 연관된 일련의 클래스들에 대한 공통적인 규약 정의

object클래스가 제공하는 메소드를 오버라이딩하여, 메소드 재구현 가능 ex)java.lang.String 클래스의 equals()와 toString()
자식 클래스 생성 시, 부모 클래스 생성자가 먼저 실행 자식 클래스 생성자 안에서 부모 클래스 생성자 호출을 명시하고 싶으면 super()쓰기
부모의 private 멤버에 접근 하기 위해서 super()를 사용
가장 첫 줄에 존재한다.
매개변수 있는 부모 생성자 호출은 super(매개변수, 매개변수)를 넣으면 됨
자식 클래스 내에서 부모 클래스 객체에 접근하여 필드나 메소드 호출 시 사용
자식 클래스가 상속 받은 부모 메소드를 재작성(재정의) 하는 것이다.
부모가 제공하는 기능을 후손이 일부 고쳐 사용하겠다는 의미
자식 객체를 통한 실행 시 후손 것이 우선권을 가짐
메소드 헤드라인 위에 반드시 Annotation, @Override 표시
접근 제어자를 부모 것보다 같거나 넓은 범위로 변경 가능
부모 메소드의 예외처리 클래스 처리범위보다 좁은 범위로 예외처리 클래스 수정 가능
부모 클래스의 메소드와 자식 클래스의 메소드 비교
메소드 이름 동일
매개변수의 개수, 타입, 순서 동일
리턴 타입 동일
private 메소드 오버라이딩 불가
한 클래스 내에서 같은 이름의 메소드를 여러 개 정의하는 것
같은 메소드 이름
다른 매개변수 선언부(매개변수 타입,개수,순서)
메소드의 리턴타입은 오버로딩 조건과 관계 없음
