diff --git a/JavaOOP/src/Java27.java b/JavaOOP/src/Java27.java index 163a3dfa..8294368d 100644 --- a/JavaOOP/src/Java27.java +++ b/JavaOOP/src/Java27.java @@ -1,4 +1,4 @@ -import myObject.A; +import poly.A; public class Java27 { public static void main(String[] args) { diff --git a/JavaOOP/src/Java28.java b/JavaOOP/src/Java28.java new file mode 100644 index 00000000..daa08c3d --- /dev/null +++ b/JavaOOP/src/Java28.java @@ -0,0 +1,20 @@ +import myObject.A; +import myObject.B; + +public class Java28 { + public static void main(String[] args) { + A a = new A(); + display(a); + + B b = new B(); + display(b); + } + + private static void display(Object o) { + if (o instanceof A) { + ((A) o).go(); + } else { + ((B) o).go(); + } + } +} diff --git a/JavaOOP/src/Java29.java b/JavaOOP/src/Java29.java new file mode 100644 index 00000000..7990f13b --- /dev/null +++ b/JavaOOP/src/Java29.java @@ -0,0 +1,31 @@ +import myObject.A; +import myObject.B; + +public class Java29 { + public static void main(String[] args) { + // A, B 클래스를 저장할 배열 + Object[] o = new Object[2]; + o[0] = new A(); + o[1] = new B(); + + for (int i = 0; i < o.length; i++) { + if (o[i] instanceof A) { + ((A) o[i]).go(); + } else { + ((B) o[i]).go(); + } + } + + printGo(o); + } + + private static void printGo(Object[] o) { + for (int i = 0; i < o.length; i++) { + if (o[i] instanceof A) { + ((A) o[i]).go(); + } else { + ((B) o[i]).go(); + } + } + } +} diff --git a/JavaOOP/src/myObject/A.java b/JavaOOP/src/myObject/A.java new file mode 100644 index 00000000..daa55c0b --- /dev/null +++ b/JavaOOP/src/myObject/A.java @@ -0,0 +1,7 @@ +package myObject; + +public class A { + public void go() { + System.out.println("A의 go 메소드"); + } +} diff --git a/JavaOOP/src/myObject/B.java b/JavaOOP/src/myObject/B.java new file mode 100644 index 00000000..ce0710d3 --- /dev/null +++ b/JavaOOP/src/myObject/B.java @@ -0,0 +1,7 @@ +package myObject; + +public class B { + public void go() { + System.out.println("B의 go 메소드"); + } +} diff --git a/JavaOOP/src/poly/A.java b/JavaOOP/src/poly/A.java index eb326cfb..dc2c943c 100644 --- a/JavaOOP/src/poly/A.java +++ b/JavaOOP/src/poly/A.java @@ -1,4 +1,4 @@ -package myObject; +package poly; public class A{