▶ 상속
매 클래스마다 중복된 필드, 메서드들을 한번에 하나의 클래스로 정의해둔 후 해당 클래스로 상속받는 식으로 진행한다.
■ 상속의 장점
1) 보다 적은 양의 코드로 새로운 클래스들을 작성 가능
2) 중복된 코드를 공통적으로 관리하기 떄문에 새로운 코드를 추가하거나 수정할 때 용이하다.
=> 프로그램 생산성과 유지보수에 크게 기여한다.
3) 정의해둔 부모클래스를 통해 좀 더 손쉽게 다른 클래스로의 확장이 가능해진다.
■ 상속의 특징
1) 클래스간의 다중상속은 불가능하다.(단일 상속만 가능)
2) 명시되어 있지않지만 모든 클래스(자바에서 이미 제공하는 클래스, 내가만든 클래스)는 Object클래스의 후손
=> Object클래스에 있는 메서드를 쓸 수 있음
=> Object클래스에 있는 메서드가 마음에 안들면 오버라이딩을 통해 재정의가 가능하다.
▶ super();
- super : 부모의 메모리 영역상 주소값
- super(); : 부모 기본 생성자
▶ 오버라이딩
상속받고있는 부모클래스의 메서드를 자식클래스에서 재정의하는 것을 의미한다.
부모가 제공하고 있는 메서드를 자식이 일부 고쳐서 사용하겠다는 의미, 실행 시 자식메서드가 우선권을 가진다.
■ 오버라이딩의 성립
- 부모메서드의 메서드명과 동일
- 매개변수 자료형, 개수, 순서가 동일(매개변수이름 상관없음)
- 반환형 동일
- 부모메서드의 접근제한자보다 같거나 공유범위가 더 커야한다.
ex) 부모메서드의 접근제한자가 protected라면 자식은 public, protected여야 한다.
■ @Override 어노테이션
- 생략 가능(명시를 안해도 부모메서드와 형태가 같으면 오버라이딩 된 것)
- 어노테이션을 붙이는 이유(반드시 붙이는게 관례이다.)
=> 잘못 기술했을 경우 오류를 알려주기 때문에 다시한번 검토할 수 있게 해준다.
=> 혹시라도 부모메서드가 나중에 수정되었을 경우 오류로 알려주기 때문에 검토할 수 있게 해준다.
=> 이 메서드가 오버라이딩된 메서드라는걸 알리는게 목적이다.
'JAVA' 카테고리의 다른 글
JAVA (18-2) API (StringPool) (0) | 2023.04.11 |
---|---|
JAVA (18-1) API(Math) (0) | 2023.04.11 |
JAVA(16) 인터페이스 (0) | 2023.04.08 |
JAVA(15) 추상클래스와 추상메서드 (0) | 2023.04.08 |
JAVA(14) 다형성 (0) | 2023.04.08 |