2023-11-07 TIL
다형성 = 여러 가지 형태를 가질 수 있는 능력
1. 자동차 핸들을 교체하면 핸들링 능력 상승, 타이어 교체시 승차감 상승
2. 소프트웨어 또한 구성하고 있는 객체를 바꿨을 때 소프트웨어의 실행 성능 및 결과물이 다르게 나올 수 있음
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"));
매개변수에도 다형성이 적용 될 수 있음
Car 생성자에서 매개변수의 타입이 부모타이어 이기 때문에 자식타이어 객체들을 매개값으로 전달할 수 있음
Tire getHankookTire() {
return new HankookTire("HANKOOK");
}
Tire getKiaTire() {
return new KiaTire("KIA");
}
...
Tire hankookTire = car1.getHankookTire();
KiaTire kiaTire = (KiaTire) car2.getKiaTire();
반환 타입에도 다형성이 적용될 수 있음
반환타입이 부모타이어 이기 때문에 자식타이어 객체들을 반환값으로 지정 할 수 있음
자동 타입변환이 된 반환값인 자식 타이어 객체를 강제 타입변환 할 수 있음
인증(Authentication), 인가(Authorization) 차이 (0) | 2023.11.09 |
---|---|
IoC Container와 Bean (0) | 2023.11.09 |
필드, 메소드, 매개변수 (0) | 2023.11.07 |
키오스크 다시한번 (0) | 2023.10.29 |
2023-10-23 간단한 게시판 만들기 (1) | 2023.10.23 |