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

首頁 > 學院 > 開發設計 > 正文

virtual和abstract的區別和聯系

2019-11-17 02:40:23
字體:
來源:轉載
供稿:網友

virtual和abstract的區別和聯系

壹. 相同

他們有些相似。有些場景用哪個都行!

1. 修飾父類、讓子類重寫

virtual和abstract都是用來修飾父類的,通過覆蓋父類的定義,讓子類重新定義。

2. 都用必須public

如果用來修飾方法,前面必須添加public,要不然就會出現編譯錯誤:虛擬方法或抽象方法是不能私有的。畢竟加上virtual或abstract 就是讓子類重新定義的,而PRivate成員是不能被子類訪問的。

貳. 區別

但是它們的區別很大。(virtual是“虛擬的”,abstract是“抽象的")。

1. 必須實現、必須沒有實現指父類中

virtual修飾的方法必須有實現(哪怕是僅僅添加一對大括號),而abstract修飾的方法一定不能實現。如對于virtual修飾的方法如果沒有實現則會報錯。

2.可以重寫、必須重寫

virtual可以被子類重寫,而abstract必須被子類重寫,

3.必須在抽象類

如果類成員被abstract修飾,則該類前必須添加abstract,因為只有抽象類才可以有抽象方法。

4.無法實例化

無法創建abstract類的實例,只能被繼承無法實例化,強行new出來 將出現編譯錯誤:抽象類或接口不能創建實例。

補充:C#中如果要在子類中重寫方法,必須在父類方法前加virtual,在子類方法前添加override,這樣就避免了程序員在子類中不小心重寫了父類方法。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 洪江市| 天水市| 鹰潭市| 蚌埠市| 汉中市| 濉溪县| 兴文县| 北京市| 敖汉旗| 湖口县| 屏东市| 河西区| 太仆寺旗| 余姚市| 分宜县| 新竹市| 宜良县| 平定县| 汉源县| 岱山县| 余庆县| 南郑县| 互助| 松江区| 英山县| 香格里拉县| 井陉县| 无为县| 周口市| 巩义市| 海城市| 东宁县| 陵川县| 前郭尔| 阳山县| 肥乡县| 福海县| 家居| 手游| 北海市| 宜良县|