42_JAVA Study 04

수빈·2021년 12월 10일
0

42JAVA

목록 보기
5/9
post-thumbnail

4주차 서브젝트

1. 상속

#[상속] #하위클래스의생성순서 #상위클래스생성자호출 #[super] #[protected]

2. 오버라이딩

#[overriding] #업캐스팅(upcasting) #[묵시적형변환] #상속에서의상위클래스와하위클래스의메모리상태 #가상메서드 #[다형성]

3. 다운캐스팅

#다운캐스팅 #instanceof #명시적형변환

Q. 상속을 언제 사용할 것인가?

Q. 상속이 코드의 재사용을 위한 일반적인 방법이 아니라고 하면 코드를 재사용하기 위한 방법은 무엇이 있을까?

Q. IS-A 와 HAS-A 관계

  • A

    IS-A관계(is a relationship : inheritance)

    • IS - A관계는 일반적인(general)개념과 구체적인(specific)개념과의 관계를 뜻합니다. 한 클래스와 다른 클래스가 IS-A관계 일 때 상속을 사용합니다.

    • 상위 클래스는 일반적인 개념 클래스이고(예 포유류) 하위 클래스는 구체적인 개념 클래스(예: 사람, 원숭이, 고래..)에 속합니다.

    • 클래스간에 상속관계가 만들어지면 클래스간에 관계가 타이트해져서 상위 클래스에 변화를 주면 하위클래스에 영향을 주게 됩니다. 그렇기에 단순히 코드를 재사용하는 목적으로 상속을 사용하지는 않습니다.

      HAS-A관계(composition):

    • 반면에 HAS-A관계는 한 클래스가 다른 클래스를 소유한 관계로 코드 재사용의 한 방법입니다.

    • 만약 우리가 ArrayList클래스를 사용하고 싶다면 ArrayList extends하여 사용 하는 것이 아닌 인스턴스를 하나 생성해서 사용하는 것 같이 필요한 코드를 재사용을 위해선 생성해서 사용하면 됩니다.

Q. 하위 클래스가 상위 클래스 형으로 묵시적 형변환이 되는 이유를 메모리로 설명하세요

썸네일: oneook

profile
42Seoul -soooh ~ 2022.04

0개의 댓글