javan

          i like java
          隨筆 - 0, 文章 - 28, 評論 - 2, 引用 - 0
          數(shù)據(jù)加載中……

          BigEgg2.java

             1//: c08:BigEgg2.java   
             2// Proper inheritance of an inner class.   
             3// From 'Thinking in Java, 3rd ed.' (c) Bruce Eckel 2002   
             4// www.BruceEckel.com. See copyright notice in CopyRight.txt.   
             5import com.bruceeckel.simpletest.*;   
             
          6.    
             
          7class Egg2 {   
             
          8.   protected class Yolk {   
             
          9.     public Yolk() { System.out.println("Egg2.Yolk()"); }   
            
          10.     public void f() { System.out.println("Egg2.Yolk.f()");}   
            
          11.   }   
            
          12.   private Yolk y = new Yolk();   
            
          13.   public Egg2() { System.out.println("New Egg2()"); }   
            
          14.   public void insertYolk(Yolk yy) { y = yy; }   
            
          15.   public void g() { y.f(); }   
            
          16. }   
            
          17.    
            
          18public class BigEgg2 extends Egg2 {   
            
          19.   private static Test monitor = new Test();   
            
          20.   public class Yolk extends Egg2.Yolk {                               //該類的內部類繼承于基類的內部類
            
          21.     public Yolk() { System.out.println("BigEgg2.Yolk()"); }   
            
          22.     public void f() {   
            
          23.       System.out.println("BigEgg2.Yolk.f()");   
            
          24.     }   
            
          25.   }   
            
          26.   public BigEgg2() { insertYolk(new Yolk()); }       //1、實例化BigEgg2對象,在基類中找到insert方法2、然后實例化Yolk對象,其基類為Egg2中的內部類3、實例化13行的egg2對象4、在insert方法后將本類中的YOKL對象賦值給y,在調用g()的時候,返回本內部類中的f()方法
            
          27.   public static void main(String[] args) {   
            
          28.     Egg2 e2 = new BigEgg2();   
            
          29.     e2.g();            
            
          30.     monitor.expect(new String[] {   
            
          31.       "Egg2.Yolk()",   
            
          32.       "New Egg2()",   
            
          33.       "Egg2.Yolk()",   
            
          34.       "BigEgg2.Yolk()",   
            
          35.       "BigEgg2.Yolk.f()"   
            
          36.     });   
            
          37.   }   
            
          38. } ///:~  

          posted on 2009-05-22 19:11 whl 閱讀(102) 評論(0)  編輯  收藏


          只有注冊用戶登錄后才能發(fā)表評論。


          網站導航:
           
          主站蜘蛛池模板: 乐山市| 安化县| 定安县| 龙泉市| 宜昌市| 平谷区| 合川市| 木兰县| 大渡口区| 玛曲县| 团风县| 新田县| 井冈山市| 昌都县| 黎平县| 龙里县| 宕昌县| 乐昌市| 金门县| 娱乐| 盐边县| 建始县| 龙游县| 定襄县| 万山特区| 连江县| 酒泉市| 桂东县| 南木林县| 樟树市| 河源市| 霍林郭勒市| 泸州市| 旅游| 洪泽县| 南昌市| 乐安县| 亳州市| 鄢陵县| 沭阳县| 杨浦区|