오늘은 상속과 생성자의 호출 문제와 14-2 클래스 변수, 클래스 메소드와 상속에 들어간다.
먼저 문제는
Car -> HybridCar -> HybridWaterCar
Car는 가솔린으로
HybridCar는 가솔린과 전기로
HybridWaterCar 가솔린과 전기와 물을 동시에 작동할 수 있는 차들을 표현한 클래스이다.
이 각각의 클래스에 적절한 생성자를 삽입하는 것이 문제였다.
물론 상속 관계를 고려하여 각 클래스 별로 필요한 생성자를 삽입하는 것이 포인트.
github: https://github.com/jeong-jaehyeon/JavaProject/blob/javaExercise/src/ExtendExercise.java
처음엔 문제 뜻을 잘 이해못했는데 super를 사용하란 걸 깨달았다.
super 사용이 아직 그렇게 익숙하진 않다는 걸 알았다.
다음은 클래스 변수, 클래스 메소드와 상속에 들어간다.
의외로 간단하게 두장에 걸쳐 서술되어 있다.
클래스 변수와 클래스 메소드는 앞에서 배웠던 것처럼 staitc 선언이 붙는 변수와 메소드다.
다시 한번 특징을 정리하자면,
자 그렇다면 클래스 변수와 클래스 메소드는 인스턴스에 속하지 않는 딱 하나만 존재하는 변수와 메소드라는 말인데~
그렇다는 것은 상속이 필요없는. 상속의 대상이 아니라는 말이다.
그럼
상위 클래스에 위치한 클래스 변수와 메소드에 하위 클래스에서 어떻게 접근하는가?
란 질문에는.
원래 사용하던 것처럼 변수의 이름만으로 접근이 가능하다.
단! 선언된 접근 수준 지시자가 허용하는 범위 내에서. (private는 안된다는 말.)
간단하게 예제를 보고 코드 상에서 이해해봤다.
github: https://github.com/jeong-jaehyeon/JavaProject/blob/javaExercise/src/SuperSubStatic.java
static 으로 선언한 i가
2번의 상위 인스턴스 생성과 1번의 하위 인스턴스 생성을 통해서
3이 호출되는 것을 볼 수 있다.
내일은 챕터15 클래스의 상속2번째: 오버라이딩 에 대해서 들어간다.
오늘의 코멘트: 좋아 오늘은 집중 잘했어~