程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> JSP編程 >> 關於JSP >> 對虛擬的看法

對虛擬的看法

編輯:關於JSP

 ★首先說說用詞約定,雖然各位可能不接受我的用詞,但為了避免書上般的很長的話,別無選擇:
類型<=>類型的概念比類廣泛
成員函數<=>包括方法、屬性器和索引器
【{ }】<=>函數體部分,指實現的代碼,即{........},例如abstract成員函數和接口成員是沒有{ }的
【先代】<=>基類型
【後代】<=>派生類型
【本代】<=>本類型
【簽名】<=>同一類型中成員的簽名是唯一的
【同簽名】<=>不同代的成員但簽名相同的
【先員】<=>同簽名的【先代中定義】成員
【後員】<=>同簽名的一個【後代中重定義】成員(而且這個後代要向上轉換成本代!)
【始員】<=>在一個override成員函數的最後的一個virtual先員或abstract先員
【末員】<=>在一個成員函數的最先一個new virtual後員之前的最後一個override後員
【虛擬血脈】<=>對於一個非靜態成員函數,其始員到末員之間的所有成員函數,我認為它實現了代碼的"反向繼承"
 ★以下是本人對虛擬的看法:
①virtual成員函數
        其{ }【盡量改用】末員的{ }
        是一個始員.開始第一段虛擬血脈
②override成員函數
        (訪問性必須顯式地與始員相同)
        (其最近一個先員必須是abstract或virtual或override的)
        其{ }【重定義了】始員的{ }
     但其{ }也是【盡量改用】末員的{ }
        
③abstract成員函數【本身沒有{ }】,【必須取用】末員的{ }
        是一個始員,開始第一段虛擬血脈
        (有abstract成員函數的類型是abstract類,它不能被實例化和密封)
④new成員的在本代訪問比先員【優先】(訪問性可與先員不同)
        但本代可以通過全限定名來訪問先員
⑤new virtual成員函數是一個始員,終止舊的虛擬血脈,開始一段新的虛擬血脈,這樣就解決了Java中的版本問題
⑥不加繼承修飾符就與先員同簽名的成員,效果和new一樣,但系統發出警告
⑦虛擬血脈上不允許靜態
⑧接口成員隱式都是abstract的
⑨實現接口的abstract類可以將接口成員映射到abstract成員函數上
⑩在同一個成員聲明中:
        static和override和virtual和abstract四種修飾符不能兩兩並存

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved