- 상위 클래스-하위 클래스의 상속 관계의 핵심을 이해하고, 그 장점을 설명할 수 있다.
- 상속: 기존의 클래스를 재활용하여 새로운 클래스를 작성하는 자바의 문법 요소
- 두 클래스를 상위클래스와 하위클래스로 나누어 상위클래스의 멤버(필드, 메서드, 이너클래스)를 하위 클래스와 공유 => 코드 재사용률 높아짐
- extends 키워드를 사용하여 두 개 이상의 클래스 간 상속 관계를 정의할 수 있다.
- 자바의 객체지향 프로그래밍에서는 단일 상속만을 허용함
- 인터페이스 구현을 통해서 다중 상속 효과를 낼 수 있음
- 포함관계와 상속관계의 차이를 설명할 수 있다.
- 포함: 상속처럼 클래스를 재사용할 수 있는 방법이지만 클래스의 멤버로 다른 클래스 타입의 참조변수를 선언하는 것
- Employee는 Address를 가지고 있다
- 상속 관계에서 사용할 수 있는 메서드 오버라이딩의 정의, 성립 조건, 장점을 이해하고 이를 활용할 수 있다.
- 메서드오버라이딩: 상위 클래로부터 상속받은 메서드와 동일한 이름의 메서드를 재정의하는 것
- 성립조건
- 메서드의 선언부(메서드 이름, 매개변수, 변환타입)이 상위클래스의 메서드와 일치
- 접근 제어자의 범위가 상위 클래스의 메서드와 같거나 넓어야 함
- 예외는 상위 클래스의 메서드보다 많이 선언할 수 없음
- super 와 super() 의 차이를 설명할 수 있다.
- super: 상위클래스의 객체
- super( ) :상위클래스의 생성자 호출 , 생성자 안에서만 사용가능, 반드시 첫 줄에 와야 함
- 모든 생성자의 첫 줄에는 반드시 this() 또는 super()가 선언되어야 함
- 만약 super()가 없는 경우, 컴파일러가 자동으로 삽입
- 이때 상위클래스에 기본 생성자가 없으면 에러 발생
- 클래스를 만들 때는 자동으로 기본 생성자를 생성하는 것을 습관화
- Object 클래스가 자바 클래스의 상속계층도에서 최상단에 위치한다는 사실을 이해할 수 있다.
- 자바의 모든 클래스는 Object 클래스로부터 확장된다
Object 클래스 대표 메서드
메서드명 | 반환타입 | 주요 내용 |
toString() | String | 객체 정보를 문자열로 출력 |
equals(Object obj) | boolean | 등가 비교 연산(==)과 동일하게 스택 메모리값을 비교 |
hashCode() | int | 객체의 위치정보 관련. Hashtable 또는 HashMap에서 동일 객체여부 판단 |
wait() | void | 현재 쓰레드 일시정지 |
notify() | void | 일시정지 중인 쓰레드 재동작 |
'부트캠프 기록 > Section1' 카테고리의 다른 글
[ 객체지향 ] 다형성 (0) | 2023.02.26 |
---|---|
[ 객체지향 ] 캡슐화 (0) | 2023.02.25 |
[객체지향] 내부클래스 (0) | 2023.02.22 |
[ 객체지향 ] 생성자 (0) | 2023.02.17 |
[ 객체지향 ] 필드와 메서드 (0) | 2023.02.16 |