JAVA2009. 11. 21. 14:02

 

//CastChild.java

class CastChild extends CastParent {
 String name = "CastChild";
 int age = 20;

 CastChild(){
  System.out.println("CastChild타입의 객체 생성됨!");
 }
 CastChild(String name, int age) {
  System.out.println("CastChild타입 객체 생성됨!");
  this.name = name;
  this.age = age;
 }

 void method1(){
  System.out.println("CastChild의 method1()호출됨");
 }
 void method2(){
  System.out.println("CastChild의 method2()호출됨");
 }
 void method3(){
  System.out.println("CastChild의 method3()호출됨");
 }
}

----------------------------------------------------

//CastParent.java
class CastParent {
 String name = "CastParent";
 int age = 50;

 //생성자
 CastParent(){
  System.out.println("CastParent타입의 객체 생성됨!");
 }
 CastParent(String name, int age) {
  System.out.println("CastParent타입의 객체 생성됨!");
  this.name = name;
  this.age = age;
 }

 //메소드 오버라이드
 void method1() {
  System.out.println("CastParent의 method1() 호출됨");
 }

 void method2() {
  System.out.println("CastParent의 method2() 호출됨");
 }
}//class

----------------------------------------------------

//CastMain.java

class CastMain {
 public static void main(String[] args){
  CastParent cp1 = new CastParent(); //부모는 부모 자신을
  System.out.println(cp1.name+":"+cp1.age+"\n");

  CastChild cc1 = new CastChild(); //자식은 자식 자식을
  System.out.println(cc1.name+":"+cc1.age+"\n");


  CastParent cp2 = new CastChild(); //부모(상)는 자식(하)을 묵시적 변환
  System.out.println(cp2.name+":"+cp2.age+"\n");
  
  CastChild cc2 =(CastChild)cp2; //자식타입 cc2에 부모cp를 자식타입으로 변환 후
  System.out.println(cc2.name+":"+cc2.age+"\n");
  
  cp2.method1();
  cp2.method2();
//  cp2.method3();  //CastParent에는 Method3()없음
  
  System.out.println();
  cc2.method1();
  cc2.method2();
  cc2.method3();


  //부모의 method1()과 부모의 method2()호출
  System.out.println();
  CastParent cp3 = new CastParent();
  System.out.println(cp3.name+":"+cp3.age);

  cp3.method1();
  cp3.method2();

  // instanceof
  CastParent cp4 = new CastParent();
  CastChild cc4 = new CastChild();
  CastParent cp5 = cc4;
  if(cp4 instanceof CastParent) {
   System.out.println("41 cp4 is instance of CastParent");
  }
  if(cp4 instanceof CastChild) { //안찍힘.
   System.out.println("44 cp4 is instance of CastChild");
  }
  if(cc4 instanceof CastChild) {
   System.out.println("47 cc4 is instance of CastChild");
  }
  if(cc4 instanceof CastParent) {
   System.out.println("50 cc4 is instance of CastParent");
  }
  if(cp5 instanceof CastParent) {
   System.out.println("53 cp5 is instance of CastParent");
  }
  if(cp5 instanceof CastChild) {
   System.out.println("56 cp5 is instance of CastParent");
  }
  if(cc4 instanceof Object) {
   System.out.println("59 cc4 is instance of Object");
  }
 }
}//class

'JAVA' 카테고리의 다른 글

String, StringBuilder, StringTokenizer 클래스의 메소드 사용 예제  (0) 2009.11.24
Java Memory Model  (0) 2009.11.21
enum 열거 상수  (0) 2009.11.21
실습5 패키지 컴파일 cmd창  (0) 2009.11.21
성적표 출력 실습  (0) 2009.11.21
Posted by Tiwaz