자세한 설명은 주석처리를 달아놨습니다.. 궁금하시거나 이해안되는부분 , 수정해야할부분 지적해주시면 감사하겠습니다.
/** * 다형성 : 부모의 참조변수에 자식의 객체를 저장할 수 있는 성질 * 만약 공통된 부모 클래스가 없다고 하면 Object 클래스가 클래스들의 가장 최상위 부모이기때문에 * Object로 묶을수 있다. */ public class PolymorphismExam2 { public static void main(String[] args) { //P 클래스를 통해 객체 par 생성 P par = new P(); //par객체의 멤버 p에 30 저장. par.p = 30; //print메서드의 배개변수로 par을 넘겨준다. print(par); //C1 클래스를 통해 객체 ch1 생성 C1 ch1 = new C1(); //ch1객체의 멤버 ca에 30 저장. ch1.ca = 100; //print메서드의 배개변수로 ch1을 넘겨준다. print(ch1); //C2 클래스를 통해 객체 ch2 생성 C2 ch2 = new C2(); //ch2객체의 멤버 cb에 70 저장. ch2.cb = 70; //print메서드의 배개변수로 ch2을 넘겨준다. print(ch2); } // end of main static void print(P par) { // 자기만의 변수를 출력 //넘어온 매개변수 par이 각각의 클래스 if (par instanceof C1) { C1 my = (C1) par; System.out.println("C1 : " + my.ca); }else if (par instanceof C2) { C2 my = (C2) par; System.out.println("C2 : " + my.cb); }else if(par instanceof P){ // 혹시나 par가 아닐경우도 나올수있기 때문에 확인사살겸 par도 조건을 걸어준다. System.out.println("P : " + par.p); } } } // end of class class P { int p; } class C1 extends P { int ca; } class C2 extends P { int cb; }
반응형
'Java' 카테고리의 다른 글
Java 추상 클래스 ( abstract ) 를 활용한 간단한 예제 (0) | 2017.07.13 |
---|---|
Java 추상클래스 ( abstract ) 란? (0) | 2017.07.13 |
Java 다형성 ( polymorphism ) 의 예제(1) (0) | 2017.07.12 |
Java 다형성 ( Polymorphism ) (0) | 2017.07.12 |
Java 캡슐화 (Encapsulation)란? (0) | 2017.07.12 |
댓글