javan

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

          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)  編輯  收藏


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


          網站導航:
           
          主站蜘蛛池模板: 郑州市| 龙里县| 连城县| 庄河市| 阿勒泰市| 黄龙县| 开化县| 汽车| 白玉县| 商水县| 宁阳县| 曲阜市| 洪泽县| 南昌市| 濮阳县| 信宜市| 沙坪坝区| 正镶白旗| 商洛市| 孟连| 海宁市| 枞阳县| 永修县| 东光县| 尼勒克县| 贺兰县| 桐梓县| 台江县| 成武县| 新巴尔虎左旗| 湘乡市| 肥东县| 拜泉县| 普安县| 苏尼特右旗| 罗山县| 丹巴县| 阿拉善右旗| 资源县| 浪卡子县| 宜兴市|