av激情亚洲男人的天堂国语,日韩欧美精品一中文字幕,无码av一区二区三区无码,国产又色又爽又刺激的a片,国产又色又爽又刺激的a片

淺談Java的方法覆蓋與變量覆蓋

首先,我們看看關(guān)于重載,和覆蓋(重寫)的簡明定義:

站在用戶的角度思考問題,與客戶深入溝通,找到吉縣網(wǎng)站設(shè)計(jì)與吉縣網(wǎng)站推廣的解決方案,憑借多年的經(jīng)驗(yàn),讓設(shè)計(jì)與互聯(lián)網(wǎng)技術(shù)結(jié)合,創(chuàng)造個(gè)性化、用戶體驗(yàn)好的作品,建站類型包括:網(wǎng)站建設(shè)、做網(wǎng)站、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣、域名注冊(cè)、網(wǎng)絡(luò)空間、企業(yè)郵箱。業(yè)務(wù)覆蓋吉縣地區(qū)。

方法重載:如果有兩個(gè)方法的方法名相同,但參數(shù)不一致,哪么可以說一個(gè)方法是另一個(gè)方法的重載。

方法覆蓋:如果在子類中定義一個(gè)方法,其名稱、返回類型及參數(shù)簽名正好與父類中某個(gè)方法的名稱、返回類型及參數(shù)簽名相匹配,那么可以說,子類的方法覆蓋了父類的方法

我們重點(diǎn)說說覆蓋問題,以如下代碼為例:

 
 
 
  1. public class People {  
  2.     public String getName() {  
  3.         return "people";  
  4.     }  
  5.  
  6. }  
  7. public class Student extends People {  
  8.       
  9.     public String getName() {  
  10.         return "student";  
  11.     }  
  12.       
  13. }  
  14. public static void main(String[] args) {  
  15.         People p=new People();  
  16.         System.out.println(p.getName());//運(yùn)行結(jié)果為people  
  17.     
  18.         Student s=new Student();  
  19.         System.out.println(s.getName());//運(yùn)行結(jié)果為student  
  20.     
  21.         People pp=new Student();  
  22.         System.out.println(pp.getName());//運(yùn)行結(jié)果為student  
  23.  
  24.     } 

上述結(jié)果說明:student類的getName方法成功覆蓋了父類的方法

我們?cè)賮砜纯醋兞康母采w:

 
 
 
  1. public class People {  
  2.     protected String name="people";  
  3.  
  4.       
  5. }  
  6. public class Student extends People {  
  7.       
  8.     protected String name="student";  
  9.           
  10. }  
  11. public static void main(String[] args) {  
  12.           
  13.                   
  14.         People p=new People();  
  15.         System.out.println(p.name);//運(yùn)行結(jié)果為people  
  16.           
  17.         Student s=new Student();  
  18.         System.out.println(s.name);//運(yùn)行結(jié)果為student  
  19.           
  20.         People pp=new Student();  
  21.         System.out.println(pp.name);//運(yùn)行結(jié)果為people  
  22.  
  23.     } 

通過運(yùn)行結(jié)果我發(fā)現(xiàn):變量的覆蓋實(shí)際上與方法的不盡相同。

用我自己的話說:變量的覆蓋最多只能算是半吊子的覆蓋。

要不然,向上轉(zhuǎn)換與不會(huì)發(fā)生數(shù)據(jù)丟失現(xiàn)象

 
 
 
  1. People pp=new Student();  
  2. System.out.println(pp.name);//運(yùn)行結(jié)果為people 

就我個(gè)人的經(jīng)驗(yàn)來說:變量的覆蓋很容易讓人犯錯(cuò)誤.讓人感覺又回到了C++的繼承[這里不是指C++帶virtual的繼承]

***我們?cè)賮砜匆欢未a:

 
 
 
  1. public class People {  
  2.     protected String name="people";  
  3.     public String getName() {  
  4.         return name;  
  5.     }  
  6. }  
  7. public class Student extends People {  
  8.       
  9.     protected String name="student";  
  10.     public String getName() {  
  11.         return name;  
  12.     }  
  13. }  
 
 
 
  1. main(String[] args) {  
  2.           
  3.         People p=new People();  
  4.         System.out.println(p.getName());//運(yùn)行結(jié)果為people  
  5.           
  6.         Student s=new Student();  
  7.         System.out.println(s.getName());//運(yùn)行結(jié)果為student  
  8.           
  9.         People pp=new Student();  
  10.         System.out.println(pp.getName());//運(yùn)行結(jié)果為student  
  11.  
  12.     } 

顯然,如此的覆蓋,才是對(duì)我們更有用的覆蓋,因?yàn)檫@樣才能達(dá)到:把具體對(duì)象抽象為一般對(duì)象的目的,實(shí)同多態(tài)性

以上只是我個(gè)人的看法,有不對(duì)的地方歡迎指出來討論。

原文鏈接:http://blog.csdn.net/kuangxiang_panpan/article/details/7443046

【編輯推薦】

  1. Java類變量和成員變量初始化過程
  2. JavaScript表格組件加載速度測(cè)試
  3. 5個(gè)讓人激動(dòng)的Java項(xiàng)目
  4. Java并行編程:從并行任務(wù)集獲取反饋
  5. Java反射機(jī)制初探

分享標(biāo)題:淺談Java的方法覆蓋與變量覆蓋
新聞來源:http://uogjgqi.cn/article/djgsiss.html
掃二維碼與項(xiàng)目經(jīng)理溝通

我們?cè)谖⑿派?4小時(shí)期待你的聲音

解答本文疑問/技術(shù)咨詢/運(yùn)營咨詢/技術(shù)建議/互聯(lián)網(wǎng)交流