상속
- 클래스 간의 상속시에는 extends 키워드 사용
- 단일 상속 : 클래스간의 관계가 다중 상속보다 명확하고 신뢰성 있는 코드 작성, 자바에서는 다중 상속 미지원->단일 상속만 지원
- 모든 클래스는 Object 클래스의 후손
- 부모클래스의 생성자, 초기화 블록은 상속 안됨. 자식 클래스 생성자 안에서 부모 클래스 생성자 호출을 명시하고 싶으면 super( ) 활용
- 부모의 private 멤버는 상속은 되지만 직접 접근 불가하다. super( ) 이용하여 전달받은 부모 필드 값을 부모 생성자 쪽으로 넘겨서 생성. 하거나 getter, setter 메소드를 이용하여 접근
super( )
- 부모 객체의 생성자를 호출하는 메소드로 기본적으로 자식 생성자에 부모 생성자 포함
- 자식 객체 생성 시에는 부모부터 생성이 되기 때문에 자식 클래스 생성자 안에는 부모 생성자를 호출하는 super( ) 가 첫줄에 존재(부모 생성자가 가장 먼저 실행되어야 하기 때문)
- 매개변수 있는 부모 생성자 호출은 super(매개변수,매개변수…)를 넣으면 됨
오버라이딩 ( Override)
- 자식 클래스가 상속 받은 부모 메소드를 재정의 하는것
- 부모가 제공하는 기능을 자식이 일부 고쳐 사용하겠다는 의미로 자식 객체를 통한 실행 시 자식것이 우선권을 가짐
- 메소드 헤드라인 위에 반드시 @Override 표시
- 접근 제한자를 부모 것보다 같거나 넓은 범위로 변경가능
오버라이딩 성립조건
- 메소드 이름 동일
- 매개변수의 개수,타입,순서 동일
- 리턴 타입 동일
- Private 메소드는 오버라이딩 불가
오버로딩
- 한 클래스 내에서 같은 이름의 메소드를 여러개 정의하는것
- 메소드의 리턴타입은 오버로딩 조건과 관계없음
- 성립 조건 : 같은 메소드 이름, 다른 매개변수 선언부(매개변수 타입, 개수, 순서)
Final 예약어
- Final 클래스 : 상속이 불가능한 클래스
- Final 메소드 : 상속 시 오버라이딩이 불가능한 메소드