- 상속
- 부모 클래스의 멤버를 자식 클래스에게 물려줄 수 있다.
- 자바에서는 다중상속이 불가능하다
- 다중 상속이란 자식 클래스가 여러 개의 부모 클래스를 상속받는 것을 말한다
- 중복되는 코드를 부모클래스에 만들어서 여러 명의 자식들이 상속받아 사용할 수 있기 때문에 유지보수에 용이하다
- 객체 지향의 3대 요소중 하나이다
- 객체지향의 3대 요소 : 상속, 다형성, 캡슐화
- this가 자기 자신을 말한다면 부모를 가리키는 super라는 키워드도 사용이 가능하다
- super : 자식클래스에서 부모를 가리킬 때 쓰는 키워드이다
-
class child extends parent {}
- extends 키워드를 사용해서 부모를 상속받아 올 수 있다
- 오버 라이딩
- 부모 클래스가 가지고 있는 메서드를 재정의하는 것이다
- 접근 제한자를 더 좁게 줄이는 것은 불가능하다
- ex > 부모 public / 자식 protected 불가능
- 동일한 이름을 가져야 하며 부모 클래스가 정의한 메서드와 리턴타입, 메소드 이름, 매개변수 목록이 같아야 한다
- 내부적으로 동작하는 부분만 수정이 가능하다
- final class : 상속 불가능
- final method : 재정의 불가능
- 다형성
- 사용방법은 동일하지만 다양한 객체를 이용해서 다양한 실행결과가 나오도록 하는 성질을 의미한다
- animal을 상속받은 개와 고양이가 sound라는 메서드를 재정의했고 그 결과 각각 다른 소리를 출력하게 된다
- 이처럼 하나의 메서드로 다른 결과가 나오게 만드는 것을 다형성이라고 한다
- 자동 타입 변환
- 위의 코드에서 test부분을 보면 개와 고양이가 인스턴스를 생성했을 때 담아주는 변수의 타입이 부모 타입인 것을 확인할 수 있다.
- 기본 타입 변수의 자동 형 변환을 생각해보면 int를 double에 담아주는 것이 가능하다. int의 범위보다 double의 범위가 더 넓기 때문에 가능한 것인데 클래스에서도 부모의 범위가 더 넓기 때문에 부모를 상속받은 자식 타입은 모두 부모 밑으로 들어갈 수 있는 것이다.
'Back-end > JAVA' 카테고리의 다른 글
23. 예외 처리 (0) | 2021.07.24 |
---|---|
22. 추상클래스와 인터페이스 (0) | 2021.07.24 |
20. Class - final(상수) (0) | 2021.07.24 |
19. Class - 멤버와 패키지, 접근 제한자 (0) | 2021.07.24 |
18. Class - Method(메서드) (0) | 2021.07.24 |