diff --git a/JavaOOP/src/Java21.java b/JavaOOP/src/Java21.java new file mode 100644 index 00000000..6bd158cb --- /dev/null +++ b/JavaOOP/src/Java21.java @@ -0,0 +1,22 @@ +import myObject.Animal; +import myObject.Cat; +import myObject.Dog; + +public class Java21 { + public static void main(String[] args) { + // 1. 다형성 인수 + Dog dog = new Dog(); + Cat cat = new Cat(); + + display(dog); + display(cat); + } + + public static void display(Animal animal) { // 다형성 인수 upcasting + animal.eat(); + // Cat 타입 인지 확인 instanceof -> Cat 타입 일때만 실행 + if (animal instanceof Cat) { + ((Cat) animal).say(); // downcasting + } + } +} diff --git a/JavaOOP/src/Java22.java b/JavaOOP/src/Java22.java new file mode 100644 index 00000000..1003571f --- /dev/null +++ b/JavaOOP/src/Java22.java @@ -0,0 +1,19 @@ +import myObject.Animal; +import myObject.Cat; +import myObject.Dog; + +public class Java22 { + public static void main(String[] args) { + // 2. 다형성 배열 + Animal[] animals = new Animal[2]; + animals[0] = new Dog(); + animals[1] = new Cat(); + + for (Animal animal : animals) { + animal.eat(); + if (animal instanceof Cat) { + ((Cat) animal).say(); + } + } + } +}