청춘만화 2012. 2. 21. 00:01

class Acast { int a=1;}
class Bcast extends Acast{ int b=2;}
class Ccast extends Bcast{ int c=3;}


public class TestCast {

public static void main(String[] args) {
Acast refA;
refA = new Ccast();
//접근 범위 파악 1
System.out.println("refA.a의 값은 "+refA.a);
//System.out.println("refA.a의 값은 "+refA.b); 
//System.out.println("refA.a의 값은 "+refA.c);

//접근 범위 파악 2
//Ccast cc = refA; 
Ccast cc = (Ccast)refA; //강제형변환
System.out.println("refA.a의 값은 "+cc.a);
System.out.println("refA.a의 값은 "+cc.b); 
System.out.println("refA.a의 값은 "+cc.c);
//접근 범위 파악 3
Bcast bb;
bb = new Bcast();
System.out.println("refA.a의 값은 "+bb.a);
System.out.println("refA.a의 값은 "+bb.b); 
//System.out.println("refA.a의 값은 "+bb.c);
//System.out.println("refA.a의 값은 "+((Ccast)bb).c); //어쨋든 맴버가 아니므로
Ccast c1;
//c1 = new Bcast();
Bcast b1 = new Bcast();
//c1 = b1;
//c1 = (Ccast)b1;//어쨋든 맴버가 아니므로

}

}