Java Day05

김범식·2021년 6월 19일
0

JAVA 수업

목록 보기
10/10

상속(Inheritance)

  • 상속 [Is a realationship : inheritance]
    : 단순히 이미 있는 클래스를 가져다 쓰는것이 아님.
    : 보편적인 클래스가 정의되어 있고 그 기능을 그대로 가져다 쓰면서 좀 더
    구체적인 클래스(add-on)메서드를 사용하는 것.(is-a 관계)
    * Java는 Single Inheritance만 가능함. 하나의 클래스에서만 상속 가능.
    : 상위클래스의 인스턴스가 먼저 생성이 되고, 하위 클래스의 인스턴스가 생성됨.
    : 반드시 상위클래스의 생성자를 먼저 호출해야함. super()로 디폴트 생성자 호출
    <상위클래스의 디폴트 생성자가 없는경우>
    • 단순히 코드를 재사용하는 목적으로 사용하는 것이 아니라 오버라이딩을 통해 새로운 메서드를 만들어 재사용 하는것!
    • Has-a 관계(Composition)의 경우는 한 클래스가 다른 클래스를 소유한 관계
      → 단순히 사용만 할 때.

extends 키워드를 통해 사용
A Class : 부모클래스, 슈퍼클래스, 상위클래스
B Class : 자식클래스, 드라이븐클래스, 하위클래스

  • 접근제어자 구분

    • public : 다른 패키지에서도 쓸 수 있음.

    • private : 같은 클래스 안에서만 사용 가능

    • default : 같은 패키지 안에서만 사용 가능

    • protected : 다른 클래스에 대해서는 private 하지만 상속받는 자식 클래스에 대해 public

      "가시성, 접근성 순서"
      (좁음) private ▶ (default) ▶ protected ▶ public (넓음)

상속의 Upcasting

  • UpCasting : 상위 클래스 변수로 묵시적 형변환.
  • A class(부모) B class(자식)을 예시로
    •   A instance = new B(); 
      위의 코드는 B class만 갖고 있는 인스턴스 변수, 메서드는 호출 불가능함.

상속의 Downcasting

profile
starterdev

0개의 댓글