상속 (Inheritance) - 1

DONI·2021년 8월 19일
0

Java

목록 보기
32/46
post-thumbnail

🏹 상속 (Inheritance)

부모 클래스의 멤버(필드, 메서드)를 자식 클래스에서 물려받아 자신의 멤버처럼 사용하는 것 (extends 키워드 : 자식 클래스에서 가지게 되는 멤버의 양이 확장됨)

  • 상속의 목적 : 클래스의 재사용, 연관된 일련의 클래스들에 대한 공통적인 규약 정의

  • 상속의 장점

    • 보다 적은 양의 코드로 새로운 클래스 작성 가능
    • 코드를 공통적으로 관리하기 때문에 코드의 추가 및 변경 용이
    • 코드의 중복을 제거하여 프로그램의 생산성과 유지보수에 크게 기여

🏹 상속의 특징

  1. Object 클래스는 모든 클래스의 부모 클래스
    Object 클래스가 제공하는 메서드를 오버라이딩하여 메서드 재구현 가능
    예) java.lang.String 클래스의 equals( )와 toString( )

    🌼 Object 클래스
    : 모든 객체가 가져야 할 공통적인 기능을 추상화하여 모아둔 최상위 클래스

  2. 부모 클래스의 생성자, 초기화 블록은 상속 불가
    자식 클래스를 생성하면 부모 클래스의 생성자가 먼저 실행됨
    🧶 부모 클래스 접근 : super( ) 메서드 이용

  3. 부모의 private 멤버는 상속은 가능하지만 직접 접근은 불가
    🧶 super( ) 메서드를 이용하여 전달 받은 부모 필드값을 부모 생성자 쪽으로 넘겨서 생성
    🧶 getter, setter 메서드를 이용하여 접근

  4. final 클래스는 부모 클래스가 될 수 없음 (상속 불가)
    부모 클래스의 final 메서드는 상속은 가능하지만 오버라이딩은 불가
    final 클래스 예 : String


🏹 단일 상속, 다중 상속

  • 단일 상속 (Single Inheritance)
    : 클래스 간의 관계가 다중 상속보다 명확하고 신뢰성 있는 코드 작성

  • 다중 상속 (Multiple Inheritance)
    : C++에서 가능한 기능으로, 여러 부모 클래스로부터 상속을 받으며
    복합적인 기능을 가진 클래스를 쉽게 작성 가능

  💥서로 다른 클래스로부터 상속 받은 멤버 간의 이름이 같은 경우
      어떤 클래스에서 상속 받은 멤버인지 구분할 수 없는 문제가 발생하기 때문에
      자바에서는 클래스 간의 다중 상속을 지원하지 않음

profile
틀린 내용이 있다면 댓글 또는 이메일로 알려주세요 ❤ꔛ❜

0개의 댓글