BloveSaga

          在希臘帕爾納斯山南坡上,有一個馳名世界的戴爾波伊神托所,在它的入口處的巨石上赫然銹刻著這樣幾個大字: 認識你自己!

            BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
            34 隨筆 :: 12 文章 :: 122 評論 :: 0 Trackbacks

          ?? 理解繼承是理解面向對象程序設計的關鍵.在Java中,通過關鍵字extends繼承一個已有的類,被繼承的類稱為父類(超類,基類),新的類稱為子類(派生類).在Java中不允許多繼承.code:
          class Animal
          {
          ?int height,weight;
          ?void eat()
          ?{
          ??System.out.println("Animal eat!");
          ?}
          ?void sleep()
          ?{
          ??System.out.println("Animal sleep!");
          ?}
          ?void breathe()
          ?{
          ??System.out.println("Animal breathe!");
          ?}
          }
          class Fish extends Animal
          {
          ?
          }
          class DoMain
          {
          ?public static void main(String[] args)
          ?{
          ??Animal an=new Animal();
          ??Fish fn=new Fish();
          ??
          ??an.breathe();
          ??fn.breathe();
          ??fn.height=30;
          ??fn.weight=20;
          ?}
          }
          Result:
          F:\Java Develop>javac Animal.java

          F:\Java Develop>java DoMain
          Animal breathe!
          Animal breathe!
          (這說明派生類繼承了父類的所有方法和成員變量.)

          方法的覆蓋(override)
          在子類中定義一個與父類同名,返回類型,參數類型均相同的一個方法,稱為方法的覆蓋,方法的覆蓋發生在子類與父類之間.
          code:
          class Animal
          {
          ?int height,weight;
          ?void eat()
          ?{
          ??System.out.println("Animal eat!");
          ?}
          ?void sleep()
          ?{
          ??System.out.println("Animal sleep!");
          ?}
          ?void breathe()
          ?{
          ??System.out.println("Animal breathe!");
          ?}
          }
          class Fish extends Animal
          {
          ?int weight,height;?? //隱藏了父類的weight,height;
          ?void breathe()? //override method breathe()
          ?{
          ??super.breathe();? //用super調用父類的構造方法
          ??System.out.println("Fish bubble");
          ?}
          }
          class DoMain
          {
          ?public static void main(String[] args)
          ?{
          ?//?Animal an=new Animal();
          ??Fish fn=new Fish();
          ??
          ??an.breathe();
          ??fn.breathe();
          ??fn.height=30;
          ??fn.weight=20;
          ?}
          }
          輸出結果:
          F:\Java Develop>javac Animal.java

          F:\Java Develop>java DoMain
          Animal breathe!
          Fish bubble

          特殊變量super
          * 使用特殊變量super提供對父類的訪問
          * 可以使用super訪問父類被子類隱藏的變量或覆蓋的方法
          * 每個子類構造方法的第一條語句都是隱含的調用super,如果父類沒有這種形式的構造函數就會報錯.
          code:
          class Animal
          {
          ?int height,weight;
          ?Animal()
          ?{
          ??System.out.println("Animal construct");
          ?}
          ?void eat()
          ?{
          ??System.out.println("Animal eat!");
          ?}
          ?void sleep()
          ?{
          ??System.out.println("Animal sleep!");
          ?}
          ?void breathe()
          ?{
          ??System.out.println("Animal breathe!");
          ?}
          }

          class Fish extends Animal
          {
          ?Fish()
          ?{
          ??System.out.println("Fish construct");
          ?}
          ?void breathe()? //override method breathe()
          ?{
          ??System.out.println("Fish bubble");
          ?}
          }
          class DoMain
          {
          ?public static void main(String[] args)
          ?{
          ??//Animal an=new Animal();
          ??Fish fn=new Fish();
          ??
          ??//an.breathe();
          ??//fn.breathe();
          ??//fn.height=30;
          ??//fn.weight=20;
          ?}
          }
          輸出結果:
          F:\Java Develop>javac Animal.java

          F:\Java Develop>java DoMain
          Animal construct
          Fish construct

          posted on 2006-06-04 11:18 藍色Saga 閱讀(245) 評論(0)  編輯  收藏 所屬分類: Basic Study for JAVA
          主站蜘蛛池模板: 汤阴县| 昭觉县| 巍山| 青神县| 桐庐县| 尼玛县| 高尔夫| 报价| 定兴县| 大理市| 施秉县| 鄂州市| 金川县| 上饶县| 昌平区| 北流市| 昔阳县| 德格县| 沧州市| 陆河县| 博客| 金坛市| 茌平县| 西和县| 石楼县| 邵阳县| 雅江县| 堆龙德庆县| 比如县| 收藏| 静安区| 万安县| 曲水县| 凤山市| 永昌县| 伊宁县| 宁强县| 渝北区| 宁乡县| 苏尼特左旗| 永嘉县|