• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            Merlin

            Life was like a box of chocolates. You never know what you're gonna get.

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

            abstract class和interface在Java語言中都是用來進行抽象類定義的

            Interface ,給外界的接口,按照規定辦事;
            Abstract??,內部繼承關系;

            interface 就是一組操作的集合,它定義了一個行為集但不作任何具體的實現,這樣的話,具體的操作 都可以放在實現類中去,
            ??????????體現設計與實現分離的設計思想。

            在面向對象的概念中,所有的對象都是通過類來描繪,如果一個類中沒有包含足夠的信息來描繪一個具體的對象,這樣的類就是抽象類
            抽象概念在問題領域沒有對應的具體概念,所以用以表征抽象概念的抽象類是不能夠實例化的。

            =====================================================================================================================
            使用abstract class的方式定義Demo抽象類的方式如下:

            				abstract class Demo {
            abstract void method1();
            abstract void method2();

            }



            使用interface的方式定義Demo抽象類的方式如下:

            				interface Demo {
            void method1();
            void method2();

            }



            ====================================================================================================================
            從編程層面看abstract class和interface

            abstract class在Java語言中表示的是一種繼承關系,一個類只能使用一次繼承關系
            一個類卻可以實現多個interface

            在abstract class的定義中,我們可以賦予方法的默認行為
            在interface的定義中,方法卻不能擁有默認行為

            ======================================================================================================================
            例如要設計一個形狀類MShape,從此類可以派生 方形、圓形、三角形等子類。我們就可以將MShape這個父類設計為abstract類。

            比如,子類都有 color 屬性,因此可以把 color 這個數據成員,以及給 color 賦值的method均設計在父類中,
            這樣就不用在每個子類中設計相同的代碼來處理 color 這個屬性。
            而如果想計算幾何形狀的面積,由于各個幾何形狀的面積計算方式都不相同,所以把計算面積的method的處理放在父類中就不合適,
            但由于每個幾何形狀都需要用到這個method,因此可以在父類中只聲明計算面積的method "area()",而把具體的處理放在子類中定義。
            即把area()設計為抽象類。

            以下是程序代碼:
            //abstract類 MShape??????

            				abstract class MShape
            {
            ????????protected String color;?? //數據成員
            ????????public void setColor(String mcolor)?? //一般方法,定義了具體的處理
            ????????{
            ?????????? color=mcolor;
            ????????}
            ????????abstract void area();?? //抽象方法,沒有定義具體的處理
            }



            //方形類

            				class RectShape extends MShape
            {??????
            ????????int width,height,rectarea;????
            ????????public RectShape(int w,int h)
            ????????{??
            ???????????????? width=w;
            ???????????????? height=h;????????
            ????????}
            ????????public void area()??//計算面積
            ????????{??????????
            ??????????rectarea=width*height;
            ????????}
            }



            //使用

            				public class myapp
            {
            ????????public static void main(String args[])
            ????????{
            ??????????RectShape rect=new RectShape(3,6);
            ??????????rect.setColor("Red");
            ??????????rect.area();
            ??????????System.out.print("color="+rect.color+", area="+rect.rectarea);
            ????????}
            }



            由此可見,在abstract中不僅可以定義一般的方法(即可以進行具體處理的方法),還可以象interface一樣定義抽象方法。
            而在interface中只能定義抽象方法。

            posted on 2006-07-11 19:53 Merlin 閱讀(424) 評論(0)  編輯 收藏 引用 所屬分類: java基礎篇
            亚洲午夜久久影院| 欧美亚洲国产精品久久久久| 无码国内精品久久综合88| 久久久噜噜噜久久| 亚洲欧洲精品成人久久曰影片 | 97久久精品无码一区二区| 国产精品一区二区久久精品| 99久久亚洲综合精品成人| 久久久黄片| 久久久久亚洲AV无码网站| 国产精品免费久久久久影院| 亚洲欧美日韩中文久久| A狠狠久久蜜臀婷色中文网| 亚洲国产香蕉人人爽成AV片久久| 人妻无码αv中文字幕久久琪琪布 人妻无码久久一区二区三区免费 人妻无码中文久久久久专区 | 久久无码精品一区二区三区| 一本色道久久88—综合亚洲精品| 国内精品久久久久久野外| 中文成人久久久久影院免费观看| 国产精品国色综合久久| 欧美午夜A∨大片久久 | 久久91亚洲人成电影网站| 久久久免费观成人影院| 日韩精品久久久肉伦网站| 人人狠狠综合久久亚洲| 国产成年无码久久久久毛片 | 男女久久久国产一区二区三区| 91精品免费久久久久久久久| 欧美噜噜久久久XXX| 亚洲婷婷国产精品电影人久久| 青青草国产精品久久| 久久精品天天中文字幕人妻| 精品久久久久久国产| 精品久久久久久无码中文野结衣 | 99热精品久久只有精品| 久久国产精品无码HDAV| 久久精品中文字幕一区| 久久综合鬼色88久久精品综合自在自线噜噜| 久久久久亚洲av无码专区导航| 久久精品国产99国产精品亚洲| 无码人妻久久一区二区三区蜜桃 |