when upcasting .....

when upcasting .....

 1 //  codes start
 2 class  base {//a base class
 3
 4// constructor
 5public base(){
 6System.out.println("base class construct");
 7}

 8// perform
 9public void perform(){
10System.out.println("base class perform");
11}

12// destructor
13public void finalize(){
14System.out.println("base class destruct");
15}

16}

17
18
19 class  subbase  extends  base {// derive from base
20
21// constructor
22public subbase(){
23System.out.println("sub class construct");
24}

25// perform
26public void perform(){
27System.out.println("sub class perform");
28}

29// destructor
30public void finalize(){
31System.out.println("sub class destruct");
32}

33}

34
35 public   class  casting {// test casting class
36// constructor
37public casting(){
38System.out.println("begin casting test");
39}

40
41public static void main(String args[]){
42base father = new base();
43subbase son = new subbase();
44
45father.perform();
46son.perform();
47
48father = (base)son; // <1>
49father.perform();
50
51son = (subbase)father; // <2>
52son.perform();
53
54father = (base)((subbase)father); // <3>
55father.perform();
56}

57}

58
59 //  codes end
60
Today ,when i go for a interview ,the project manager asked me this question !
Acturally ,It's just relate to the knowledge of reference &&  object !
Be carefull ,Nothing !

你可能感兴趣的:(when upcasting .....)