国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學(xué)院 > 開發(fā)設(shè)計(jì) > 正文

Override和Overload的含義去區(qū)

2019-11-08 02:25:47
字體:
供稿:網(wǎng)友

最近看了一下關(guān)于java的基礎(chǔ)知識(shí),對(duì)此作了一下搜集整理: java中的繼承,方法覆蓋(重寫)override與方法的重載overload的區(qū)別 方法的重寫(Overriding)和重載(Overloading)是Java多態(tài)性的不同表現(xiàn)。   重寫(Overriding)是父類與子類之間多態(tài)性的一種表現(xiàn),而重載(Overloading)是一個(gè)類中多態(tài)性的一種表現(xiàn)。如果在子類中定義某方法與其父類有相同的名稱和參數(shù),我們說該方法被重寫 (Overriding) 。子類的對(duì)象使用這個(gè)方法時(shí),將調(diào)用子類中的定義,對(duì)它而言,父類中的定義如同被"屏蔽"了。如果在一個(gè)類中定義了多個(gè)同名的方法,它們或有不同的參數(shù)個(gè)數(shù)或有不同的參數(shù)類型或有不同的參數(shù)次序,則稱為方法的重載(Overloading)。不能通過訪問權(quán)限、返回類型、拋出的異常進(jìn)行重載。 1. Override 特點(diǎn)   1、覆蓋的方法的標(biāo)志必須要和被覆蓋的方法的標(biāo)志完全匹配,才能達(dá)到覆蓋的效果;   2、覆蓋的方法的返回值必須和被覆蓋的方法的返回一致;   3、覆蓋的方法所拋出的異常必須和被覆蓋方法的所拋出的異常一致,或者是其子類; 4、方法被定義為final不能被重寫。  5、對(duì)于繼承來說,如果某一方法在父類中是訪問權(quán)限是PRivate,那么就不能在子類對(duì)其進(jìn)行重寫覆蓋,如果定義的話,也只是定義了一個(gè)新方法,而不會(huì)達(dá)到重寫覆蓋的效果。(通常存在于父類和子類之間。) 2.Overload 特點(diǎn)   1、在使用重載時(shí)只能通過不同的參數(shù)樣式。例如,不同的參數(shù)類型,不同的參數(shù)個(gè)數(shù),不同的參數(shù)順序(當(dāng)然,同一方法內(nèi)的幾個(gè)參數(shù)類型必須不一樣,例如可以是fun(int, float), 但是不能為fun(int, int));   2、不能通過訪問權(quán)限、返回類型、拋出的異常進(jìn)行重載;   3、方法的異常類型和數(shù)目不會(huì)對(duì)重載造成影響;   4、重載事件通常發(fā)生在同一個(gè)類中,不同方法之間的現(xiàn)象。 5、存在于同一類中,但是只有虛方法和抽象方法才能被覆寫。 其具體實(shí)現(xiàn)機(jī)制: overload是重載,重載是一種參數(shù)多態(tài)機(jī)制,即代碼通過參數(shù)的類型或個(gè)數(shù)不同而實(shí)現(xiàn)的多態(tài)機(jī)制。 是一種靜態(tài)的綁定機(jī)制(在編譯時(shí)已經(jīng)知道具體執(zhí)行的是哪個(gè)代碼段)。       override是覆蓋。覆蓋是一種動(dòng)態(tài)綁定的多態(tài)機(jī)制。即在父類和子類中同名元素(如成員函數(shù))有不同 的實(shí)現(xiàn)代碼。執(zhí)行的是哪個(gè)代碼是根據(jù)運(yùn)行時(shí)實(shí)際情況而定的。 Overrride實(shí)例 :

Java代碼  收藏代碼class A{     public int getVal(){        return(5);     }     }     class B extends A{     public int getVal(){        return(10);     }     }     public class override {     public static void main(String[] args) {        B b = new B();        A a= (A)b;//把 b 強(qiáng) 制轉(zhuǎn)換成A的類型            int x=a.getVal();        System.out.println(x);     }     }   

 結(jié)果:10 Overload實(shí)例:

Java代碼  收藏代碼//Demostrate method voerloading.     class OverloadDemo {     void test(){        System.out.println("NO parameters");     }     void test(int a){        System.out.println("a:"+a);     }//end of Overload test for one integer parameter.     void test(int a, int b){        System.out.println("a and b:"+a+" "+b);            }  double test(double a){        System.out.println("double a:"+a);        return a*a;     }  }      public class Overload{     public static void main(String[] args) {        OverloadDemo ob = new OverloadDemo();        double result;        ob.test();        ob.test(10);        ob.test(10, 20);        result = ob.test(123.25);        System.out.println("Result of ob.test(123.25):"+result);  }  }  

 結(jié)果: NO parameters a:10 a and b:10 20 double a:123.25 Result of ob.test(123.25):15190.5625


發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 灵川县| 桐梓县| 胶南市| 长岭县| 怀集县| 金秀| 怀柔区| 丰县| 哈密市| 霍州市| 大荔县| 屏山县| 抚远县| 高清| 宁远县| 全州县| 玉环县| 黑龙江省| 万安县| 朔州市| 西安市| 铅山县| 沙湾县| 伊金霍洛旗| 石河子市| 兰考县| 望谟县| 墨竹工卡县| 响水县| 光山县| 海城市| 兴国县| 东台市| 淮北市| 泰来县| 青川县| 扬中市| 彭州市| 石嘴山市| 横山县| 微博|