亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        Java語言中方法重載與方法覆蓋的異同

        2017-05-10 23:49:03李娜
        電子技術(shù)與軟件工程 2017年8期
        關(guān)鍵詞:多態(tài)

        李娜

        摘 要

        面向?qū)ο缶幊逃腥筇匦裕悍庋b、繼承、多態(tài),本文主要談?wù)勂渲兄欢鄳B(tài)的兩種實現(xiàn)方式——方法重載與方法覆蓋,并比較它們的異同。

        【關(guān)鍵詞】Java 多態(tài) 方法重載 方法覆蓋

        在Java語言的學(xué)習(xí)過程中,初學(xué)者經(jīng)常分不清重載與覆蓋,實際上,方法重載(Overload)和方法覆蓋(Override,也叫重寫)都是Java多態(tài)性的體現(xiàn),只是形式不同,在此,筆者簡單地談一談兩者的異同。

        1 方法重載與方法覆蓋的特點

        1.1 方法重載的特點

        Java語言中的方法重載就是在類中可以創(chuàng)建多個方法,實際上就是一個類中多態(tài)性的一種表現(xiàn),也叫靜態(tài)多態(tài)。

        如下面的例子:

        1 class DBUtil{

        2 private String server="127.0.0.1";//服務(wù)器地址

        3 private String db="HRDB";//數(shù)據(jù)庫名稱

        4 public String getDBUrl(String server,String db){//重載方法

        5 return "jdbc:sqlserver://"+server+":1433; DatabaseName="+db;

        6 }

        7 public String getDBUrl(String server){ //重載方法

        8 return getDBUrl(server,db);

        9 }

        10 public String getDBUrl(){//重載方法

        11 return getDBUrl(server,db);

        12 }

        13 }

        14 public class StaticPolymorphismDemo {

        15 public static void main(String args[]) {

        16 DBUtil util=new DBUtil();

        17 //調(diào)用第4行的方法

        18 System.out.println(util.getDBUrl("192.168.4.23","CXHR"));

        19 //調(diào)用第7行的方法

        20 System.out.println(util.getDBUrl("192.168.4.23"));

        21 //調(diào)用第10行的方法

        22 System.out.println(util.getDBUrl());

        23 }

        24 }

        方法重載的主要特點有以下幾點:第一個特點是方法名是相同的;第二個特點是方法的個數(shù)、順序、參數(shù)類型至少有一項是不相同的;第三個特點是方法的返回類型不一定要是相同的;第四個特點是方法的修飾符也可以是不相同的。

        1.2 方法覆蓋的特點

        Java語言中的方法覆蓋是指父類中有的方法,在子類中被重新定義,方法簽名一樣(方法名,參數(shù)個數(shù)和參數(shù)類型都一樣)的情況,也叫動態(tài)多態(tài)。

        如下面的例子:

        public class Base {

        public void method() {}

        }

        public class Sub extends Base{

        public void method() {}

        }

        方法覆蓋的特點主要有以下幾點:第一個特點是方法覆蓋只存在于子類和父類之間,在同一個類中的方法不能被覆蓋;第二個特點是父類方法拋出的異常可以比子類方法更多; 第三個特點是父類方法的名稱、參數(shù)簽名和返回類型與子類方法的是一致的; 第四個特點是子類是不允許將父類的靜態(tài)方法覆蓋為非靜態(tài)方法,父類的非靜態(tài)方法也不能被子類覆蓋為靜態(tài)方法;第五個特點是子類方法不能縮小父類方法的訪問權(quán)限;第六個特點是子類不能覆蓋父類的私有方法;第七個特點是子類可以通過兩種途徑覆蓋父類的抽象方法:一種是子類實現(xiàn)父類的抽象方法,另一種是子類重新聲明父類的抽象方法;第八個特點是父類的非抽象方法可以被覆蓋為抽象方法。

        2 方法重載與方法覆蓋的異同

        2.1 方法重載與方法覆蓋的相同點

        Java語言中,方法重載與方法覆蓋的主要相同點有兩個:第一個相同點是法重載與方法覆蓋都要求方法同名;第二個相同點是方法重載與方法覆蓋在抽象方法和非抽象方法之間都可以使用。

        2.2 方法重載與方法覆蓋的不同點

        Java語言中,方法重載與方法覆蓋的主要不同點有以下5個:第一個不同點是方法重載不允許參數(shù)簽名一致,相反,方法覆蓋則要求參數(shù)簽名必須一致;第二個不同點是方法重載對返回類型是否一致不做限制,而方法覆蓋則要求返回類型必須一致;第三個不同點是方法重載可以用于同一個類的所有方法,而方法覆蓋則僅限于用于子類覆蓋父類的方法;第四個不同點是方法重載對方法的訪問權(quán)限和拋出的異常方法不做限制性要求,而方法覆蓋對此則有特殊的要求;第五個不同點是一個方法在所在的類中可以多次重載,而父類的一個方法則只能被子類覆蓋一次。

        總之,方法的重載(Overload)和覆蓋(Overrid)是Java多態(tài)性的不同表現(xiàn)。重載(Overload)是一個類中多態(tài)性的一種表現(xiàn),而覆蓋(Overrid)是父類與子類之間多態(tài)性的一種表現(xiàn)。靈活地運用方法重載與方法覆蓋,不僅能減少編碼的工作量,也能大大提高程序的可維護性及可擴展性。

        參考文獻

        [1]姜靜思.Java中類的多態(tài)性分析[J].科技展望,2015(01).

        [2]陽小蘭,錢程.JAVA語言中構(gòu)造方法的繼承與重載探討[J].電腦知識與技術(shù),2010(21).

        [3]李寧.Java中的方法重寫與方法重載[J].科技信息,2009(03).

        猜你喜歡
        多態(tài)
        分層多態(tài)加權(quán)k/n系統(tǒng)的可用性建模與設(shè)計優(yōu)化
        參差多態(tài)而功不唐捐
        面向?qū)ο蟪绦蛟O(shè)計中多態(tài)性探討
        人多巴胺D2基因啟動子區(qū)—350A/G多態(tài)位點熒光素酶表達載體的構(gòu)建與鑒定及活性檢測
        多態(tài)及其在數(shù)據(jù)結(jié)構(gòu)中的應(yīng)用
        煙堿型乙酰膽堿受體基因多態(tài)與早發(fā)性精神分裂癥的關(guān)聯(lián)研究
        中文字幕在线免费| 亚洲精品中文字幕导航| 日本激情网址| 亚洲素人av在线观看| 99久久免费看精品国产一| 国产色xx群视频射精| 又爽又黄无遮挡高潮视频网站| 啪啪视频一区二区三区入囗| 国产黄三级三级三级三级一区二区 | 亚洲色大成网站www尤物| 在线无码精品秘 在线观看| 日韩在线精品免费观看| 美女网站免费观看视频| 精品人妻一区二区三区四区| 国产目拍亚洲精品一区二区| 中文字幕精品亚洲一区二区三区| 亚洲熟女乱一区二区三区| 国产精品扒开腿做爽爽爽视频| 中文字幕一区二区三区人妻少妇| 亚洲av理论在线电影网| 一区二区三区在线视频免费观看| 亚洲中文字幕乱码在线观看| 国产综合色在线精品| 永久免费观看的毛片手机视频| 亚洲国产成人AⅤ片在线观看| 中文字幕国内一区二区| 日韩精品在线免费视频| 撕开奶罩揉吮奶头视频| 欧美韩国精品另类综合| 亚洲一区中文字幕一区| 成人做爰69片免费看网站野花| 国产超碰人人模人人爽人人喊| 久久国产亚洲精品超碰热| 亚洲香蕉久久一区二区| 国产一区二区精品久久岳| 久久这里只精品国产免费10 | 国产福利酱国产一区二区| 偷拍av一区二区三区| 久久国产在线精品观看| 国产特级毛片aaaaaa视频| 在线视频制服丝袜中文字幕|