-
Java - Casting 명시적변환Java 2018. 1. 18. 14:26반응형public class Spell {public String casting() {return "주문을 외운다";}}public class Fire extends Spell {@Overridepublic String casting() {return "화염"+super.casting();}}public class Ice extends Spell {@Overridepublic String casting() {return "냉기"+super.casting();}}public class Light extends Spell {@Overridepublic String casting() {return "번개"+super.casting();}}< Main >public class Mage {public static void main(String[] args) {// 1. 다형성을 사용하지 않고// Fire f = new Fire();// System.out.println(f.casting());//// Ice i = new Ice();// System.out.println(i.casting());//// Light l =new Light();// System.out.println(l.casting());// 2. 다형성을 사용 하고Spell sp = null;sp = new Fire();System.out.println(sp.casting());sp = new Ice();System.out.println(sp.casting());sp = new Light();System.out.println(sp.casting());// 3. 다형성 배열Spell[] sp = new Spell[3];sp[0] = new Fire();System.out.println(sp[0].casting());sp[1] = new Ice();System.out.println(sp[1].casting());sp[2] = new Light();System.out.println(sp[2].casting());// 4. 다형성 배열 for문Spell[] sp = new Spell[3];sp[0] = new Fire();sp[1] = new Ice();sp[2] = new Light();for(int i = 0; i <sp.length; i++) {System.out.println(sp[i].casting());}for(Spell s : sp) {System.out.println(s.casting());}}}// 다형성을 사용하면 필요할때만 불러 온다.// 다형성 Casting 예제 -
< Car ex) >
public class Racer extends Car{public void drive(Car car) { // Car형식으로 받아서 일일히 메서드를 만들 필요가 없다.car.run();}// 만약 필드 다형성을 사용하지 않는다면, 메서드 오버로드를 사용 해야 한다.public void drive(Maserati ma) {}public void drive(Ferrari fe) {} public void drive(Kia k) {}}public class Car {public void run() {System.out.println("Car 시동");}}public class Maserati extends Car{public void run() {System.out.println("Maserati 시동");}}public class Ferrari extends Car{public void run() {System.out.println("Ferrari 시동");}}public class Kia extends Car{public void run() {System.out.println("Kia 시동");}}public class Main {public static void main(String[] args) {// 레이서를 부른다.// 차를 가져온다.// 차를 레이서에게 운전 시킨다.Racer rc = new Racer();Car c = new Racer();c.run();c = new Maserati();c.run();c = new Ferrari();c.run();c = new Kia();c.run();// Car형식 c를 넘긴다.rc.drive(c);rc.drive(new Maserati());rc.drive(new Ferrari()); // 곧바로 집어 넣는다.}}< Car ex) >반응형'Java' 카테고리의 다른 글
Java - Interface (0) 2018.01.19 Java - 추상화 (Abstraction) (0) 2018.01.19 Java - Promotion, Casting 묵시적, 명시적 형변환 (0) 2018.01.18 Java - 다형성(Polymarphism) (0) 2018.01.18 Java - extends (0) 2018.01.18 댓글