java技術博客

          jsp博客
          數據加載中……
          java的多態
          /*  北大青鳥APTECH.
           *  版權所有
           
          */


          /**
           * 這個程序演示動態多態性的用法.
           * 
          @version 1.0 2005 年 5 月 20 日
           * 
          @author Michael
           
          */

          abstract class Shape {

              
          /** 存儲任何形狀的長. */
              
          protected double length;

              
          /** 存儲任何形狀的寬. */
              
          protected double width;

              
          /** 
               * 構造方法.
               * 
          @param num 傳遞至構造方法
               * 
          @param num1 傳遞至構造方法
               
          */

              Shape(
          final double num , final double num1) {

              
          /** 初始化變量. */
                  length 
          = num;
                  width 
          = num1;
              }


              
          /**
               * 抽象方法.
               * 
          @return double 值
               
          */

              
          abstract double area();
          }


          /**
           * 這個類重寫父類的方法.
           * 
          @version 1.0 2005 年 5 月 20 日
           * 
          @author Michael
           
          */


          class Square extends Shape {

              
          /** 構造方法.
               *
          @param num 傳遞至構造方法的參數
               *
          @param num1 傳遞至構造方法的參數
               
          */

              Square(
          final double num, final double num1) {
                  
          super(num, num1);
              }


              
          /**
               * 計算正方形的面積.
               * @return傳遞給構造方法的 length
               
          */


              
          double area() {
                  System.out.println(
          "正方形的面積為:" );
                  
          return length * width;
              }

          }


          /**
           * 這個類重寫父類的方法.
           * 
          @version 1.0 2005 年 5 月 20 日
           * 
          @author Michael
           
          */


          class Triangle extends Shape {

              
          /** 構造方法.
               *
          @param num 傳遞至構造方法的參數
               *
          @param num1 傳遞至構造方法的參數
               
          */

              Triangle(
          final double num, final double num1) {
                  
          super(num, num1);
              }


              
          /**
               * 計算三角形的面積.
               *
          @return double  傳遞給構造方法的length
               
          */


              
          double area() {
                  System.out.println(
          "三角形的面積為:" );
                  
          return (0.5 * length * width);
              }

          }


          /**
           * 這個類測試對象引用.
           * 
          @version 1.0 2005 年 5 月 20 日
           * 
          @author Michael
           
          */


          public class CalculateArea {

              
          /** 構造方法. */
              
          protected CalculateArea() {
              }


              
          /**
               * 這是 main 方法.
               * 
          @param arg 傳遞至 main 方法的參數
               
          */


              
          public static void main(final String[] arg) {
                  
          // 初始化變量
                  Shape fObj;
                  Square sqObj 
          = new Square(10 , 20);
                  Triangle trObj 
          = new Triangle(12 , 8);
                  fObj 
          = sqObj;
                  System.out.println(fObj.area());
                  fObj 
          = trObj;
                  System.out.println(fObj.area());
              }

          }

          posted on 2008-10-29 07:39 郭興華 閱讀(136) 評論(0)  編輯  收藏


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


          網站導航:
           
          主站蜘蛛池模板: 太和县| 龙井市| 南溪县| 青海省| 邢台市| 栖霞市| 延长县| 太康县| 丹江口市| 沙洋县| 刚察县| 平定县| 仙游县| 乐安县| 枞阳县| 磴口县| 鹿泉市| 福海县| 宾川县| 南部县| 乳山市| 江阴市| 沭阳县| 大厂| 大邑县| 芦溪县| 子长县| 安吉县| 观塘区| 舟山市| 临城县| 惠来县| 上虞市| 广水市| 阿尔山市| 临桂县| 嵩明县| 特克斯县| 莱阳市| 旌德县| 安化县|