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 郭興華 閱讀(135) 評論(0)  編輯  收藏


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


          網站導航:
           
          主站蜘蛛池模板: 静海县| 沭阳县| 东源县| 夹江县| 云南省| 盘山县| 拜城县| 邓州市| 宜川县| 凤台县| 宣汉县| 乐东| 张家口市| 商丘市| 内黄县| 聂荣县| 保山市| 蓬安县| 尉氏县| 广昌县| 贵溪市| 东丰县| 时尚| 南和县| 稷山县| 嘉峪关市| 大厂| 清新县| 红桥区| 贺州市| 绥化市| 尼木县| 商河县| 轮台县| 奉贤区| 钟山县| 库尔勒市| 信丰县| 峨眉山市| 东丽区| 乌审旗|