1. super vs super()
- super : 부모 클래스의 멤버에 저장
- super() : 부모 클래스의 생성자를 가져옴. 가장 첫줄에 써야함.
2. 다형성
A. 자동 타입 변환
- '부모타입 변수 = 자식타입 객체'는 자동 형변환이 일어남
- 이때 부모타입 클래스로 판단되어, 자식 메소드는 못씀
B. 강제 타입 변환
- 자동 타입 변환이 일어난 상태에서, '자식타입 변수 = 자식타입 객체'로 변환시켜줄 수 있음
C. 다형성 확보하기
- 자동타입변환을 이용하여 확보할 수 있다.
- '부모타입 변수 = 자식타입 객체'의 예
Tire tire = new HankookTire("HANKOOK");
Tire tire = new KiaTire("KIA");
public Car(Tire tire) {
this.tire = tire;
}
...
Car car1 = new Car(new KiaTire("KIA"));
Car car2 = new Car(new HankookTire("HANKOOK"));
Tire getHankookTire() {
return new HankookTire("HANKOOK");
}
Tire getKiaTire() {
return new KiaTire("KIA");
}
...
Tire hankookTire = car1.getHankookTire();
KiaTire kiaTire = (KiaTire) car2.getKiaTire();