언어/자바
다운케스팅, 다형성
공부하고 기록하고 다시보는 블로그
2025. 6. 2. 17:42
// Call By reference
// 부모 클래스 하나로 다 받는다. 매개변수에다가 다형성을 적용 // 오버라이드도 아니고, 매개변수가 다르다. 매개변수가 다른 매서드를 여러개 만들면 안된다. public static void moveAnimal(_05_Animal animal) { //System.out.println(animal); animal.move(); if(animal instanceof _05_Human) { // 다운케스팅 _05_Human test = (_05_Human)animal; test.readBook(); } else if(animal instanceof _05_Tiger) { _05_Tiger test = (_05_Tiger)animal; test.hurting(); } else if(animal instanceof _05_Eagel) { _05_Eagel test = (_05_Eagel)animal; test.flying(); } } // 자식으 갯수만큼 만들어 내야한다. // // Call By reference // public static void moveAnimal(_05_Human anmal) { // _05_Human animal2 = new _05_Human(); // System.out.println(anmal); // anmal.move(); // } // // // Call By reference // public static void moveAnimal(_05_Tiger anmal) { // _05_Tiger animal3 = new _05_Tiger(); // System.out.println(anmal); // anmal.move(); // } // // // Call By reference // public static void moveAnimal(_05_Eagel anmal) { // _05_Eagel animal4 = new _05_Eagel(); // System.out.println(anmal); // anmal.move(); // } |