• 상속
    • 부모 클래스의 멤버를 자식 클래스에게 물려줄 수 있다.
    • 자바에서는 다중상속이 불가능하다
      • 다중 상속이란 자식 클래스가 여러 개의 부모 클래스를 상속받는 것을 말한다
    • 중복되는 코드를 부모클래스에 만들어서 여러 명의 자식들이 상속받아 사용할 수 있기 때문에 유지보수에 용이하다
    • 객체 지향의 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

+ Recent posts