본문 바로가기

언어/자바

다운케스팅, 다형성

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

 

 

'언어 > 자바' 카테고리의 다른 글

List 프레임워크 vs Map 프레임워크  (0) 2025.06.05
인터페이스 vs 추상클래스  (0) 2025.06.04
overide vs overoad vs 상속  (0) 2025.05.30
static - 핵심  (0) 2025.05.29
Call by Value vs Call by Reference  (0) 2025.05.29