타입변환과 다형성

딩딩당당·2022년 12월 5일

인터페이스의 다형성

구현 객체를 교체하여 프로그램 실행 결과가 다양해지는데 이를 인터페이스의 다형성이라고 한다.

1. 인터페이스의 자동 타입 변환

구현 객체가 인터페이스 타입으로 변환되면 자동 타입 변환에 해당된다.

인터페이스 변수 = 구현객체;

2. 인터페이스의 강제 타입 변환

구현클래스 변수 = (구현클래스) 인터페이스 변수

다형성

필드의 다형성

프로그램은 많은 객체들이 서로 연결되고 각자의 역할을 한다. 이 객체들은 서로 다른 객체로 교체될 수 있어야한다

->실행 도중에 어떤 객체를 필드로 저장하느냐에 따라 실행 결과가 달라질 수 있다

class Car {
	//필드
    Tier leftTire = new Tire();
    Tier rigthTier = new Tier();
}

Car 필드에는 2개의 Tier 타입 필드를 가지고 있다. Car 객체를 생성하면 2개의 Tier 필드에 각각 하나씩 Tire 객체가 들어가게 된다.

만약 타이어 교체가 필요할 경우

Car myCar = new Car();
myCar.leftTire = new HankookTire(); 
// 새로운 객체 HankookTire로 교체

Tire 타입인 leftTire는 원래 Tire 객체가 저장되어야 하지만 Tire의 자식 객체가 저장되어도 문제가 없다.

profile
자바공부해요흑흑

0개의 댓글