부모 클래스(슈퍼 클래스) : 상속을 통해 자신의 필드와 메서드를 다른 클래스에 제공하는 클래스
자식 클래스(서브 클래스) : 부모 클래스로부터 필드와 메서드를 상속받는 클래스

상속을 사용하는 이유

- 공통으로 사용되는 속성 혹은 기능을 상위 클래스에 정의하여 공유함으로써 중복 코드를 줄일 수 있다.

상속

- 자식클래스는 1개의 부모클래스만 상속받을 수 있다.
- 부모 클래스로부터 상속받은 필드나 메서드를 접근할때는 super 키워드를 사용한다.
- 자식 객체에서 기능을 호출시 자식 객체에서 해당 기능이 있는지 찾고 찾지못한다면 부모 객체에서 찾는다.
- 자바의 모든 클래스는 최상위 클래스인 Object클래스를 상속받는다.
- 자식 클래스의 인스턴스 생성시 부모 인스턴스도 같이 생성된다.

- 자식 인스턴스 생성시 부모 생성자가 호출된다.(하지만 기본 생성자는 생략 가능 -> 자바에서 자동으로 만들어 주기 때문)

 

메서드 오버라이딩을 하는 이유

- 부모 클래스의 메서드를 자식 클래스에서 재정의함으로써 다형성을 구현할 수 있다.- 부모 클래스의 메서드가 자식 클래스의 요구사항에 맞지 않은 경우 자식 클래스에서 해당 메서드를 재정의 할 수 있다.

 

메서드 오버라이딩 조건

- 메서드 이름이 같아야 한다.

- 메서드 매개변수(파라미터) 타입, 순서, 개수가 같아야 한다.

- 반환타입이 같아야 한다.

- 상위 클래스의 메서드보다 더 많은 체크 예외를 선언할 수 없다.

- final 메서드는 재정의를 금지한다.

- 부모 클래스의 메서드보다 접근제어자가 제한적이어서는 안된다.

    (ex)

    부모클래스 : protected, 자식클래스 : private, default  -> 불가능   

    부모클래스 : protected , 자식클래스 : public, protected  -> 가능

 

접근 제어자 이론 문제

https://rnwns2.tistory.com/145

 

접근 제어자 실습 문제

 

'인강 > 자바(기본편)' 카테고리의 다른 글

다형성  (0) 2024.07.23
this, 생성자  (0) 2024.07.02
변수와 초기화  (0) 2024.07.02
기본형 vs 참조형  (0) 2024.07.01
클래스와 데이터  (0) 2024.07.01

+ Recent posts