-
학습 목표
- 상위 클래스-하위 클래스의 상속 관계의 핵심을 이해하고, 그 장점을 설명할 수 있다.
- extends 키워드를 사용하여 두 개 이상의 클래스 간 상속 관계를 정의할 수 있다.
- 포함관계와 상속관계의 차이를 설명할 수 있다.
- 상속 관계에서 사용할 수 있는 메서드 오버라이딩의 정의, 성립 조건, 장점을 이해하고 이를 활용할 수 있다.
- super 와 super() 의 차이를 설명할 수 있다.
- Object 클래스가 자바 클래스의 상속계층도에서 최상단에 위치한다는 사실을 이해할 수 있다.
상속
- 기존의 클래스를 재활용하여 새로운 클래스를 작성하는 자바의 문법 요소
- 하위 클래스는 상위 클래스가 가진 모든 멤버를 상속 받음
- 하위 클래스의 멤버 개수는 상위 클래스와 비교했을때 많거나 같다
- 코드를 재하용하여 보다 적은 양의 코드로 새로운 클래스를 작성할 수 있어 코드의 중복을 제거
- 다형적 표현이 가능
class b extends a -b가 a를 상속 받은거
포함 관계
- 클래스의 멤버로 다른 클래스 타입의 참조변수를 선언하는 것
메서드 오버라이딩
- 상위 클래스로부터 상속받은 메서드와 동일한 이름의 메서들르 재정의하는 것
메서드 오버라이딩 조건
- 메서드 선언부(메서드 이름, 매개변수, 반환타입)이 상위클래스의 그것과 완전히 일치해야한다
- 접근 제어자의 범위가 상위 클래스의 메서드보다 같거나 넓어야 한다
- 예외는 상위 클래스의 메서드보다 많이 선언할 수 없다
super 키워드와 super()
- super키워드는 상위 클래스의 객체, super() 상위클래스의 생성자를 호출
- 공통적으로 모두 상위 클래스의 존재를 상정하며 상속 관계를 전제로 한다
- super키워드는 두 개의 같은 이름의 변수를 구분하기 위한 방법
- super키워드를 사용하면 부모의 객체의 멤버 값을 참고할 수 있다
this와 super의 차이점
- 상위 클래스의 멤버와 자신의 멤버를 구별하는 데 사용된다는 점
super()
- 생성자 안에서만 사용가능, 첫 줄에 와야함
- 모든 생성자의 첫 줄에는 this(), super()가 선언되어야 한다
클래스의 정점 Object클래스
- 최상위 클래스
- 자동적으로 extends Objet를 추가하여 object 클래스를 상속 받도록 해야함