상세 컨텐츠

본문 제목

다형성이란?

Java TIL

by 개발일지작성 2023. 11. 8. 08:57

본문

728x90

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();


반환 타입에도 다형성이 적용될 수 있음

반환타입이 부모타이어 이기 때문에 자식타이어 객체들을 반환값으로 지정 할 수 있음

자동 타입변환이 된 반환값인 자식 타이어 객체를 강제 타입변환 할 수 있음

'Java TIL' 카테고리의 다른 글

인증(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

관련글 더보기