다형성의 개념
다형성의 구조
- 하위 클래스 객체를 상위 클래스 자료형으로 변환이 가능하다.
- 생성자 부분만 새로운 부품으로 교체 하듯이 수행(부모 클래스 타입의 참조 변수로 자식 클래스 타입의 인스턴스를 참조할 수 있도록 하여 구현).
public static void main(String[] args) {
GraphicCard gc = new GraphicCard();
# 다형성
gc = new NvidiaGraphicCard();
gc = new AmdGraphicCard();
}
매개변수의 다형성
public class Copmputer {
public void read(Usb usb) {
usb.read()
};
public void write(Usb usb) {
usb.read()
};
public static void main(String[] args) {
Computer com = new Computer();
SamsungUsb susb = new SamsungUsb();
com.read(susb);
com.write(susb);
SandiskUsb sanusb = new SandiskUsb();
com.read(sanusb);
com.write(sanusb);
}
}
삼성 USB를 읽는다.
삼성 USB를 쓴다.
샌디스크 USB를 읽는다.
샌디스크 USB를 쓴다.
- 위처럼 매개변수 타입을 상위 클래스 타입으로 지정하면 상위 클래스의 하위 클래스들이 자동으로 형변환된다.
- 하위클래스에서 재정의된 메서드가 실행.