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

C# 繼承 概述

編輯:關於C#
 

在繼承一個基類時,成員(屬性、方法)的可訪問性就成了一個重要的問題。派生類不能訪問基類的私有成員,但可以訪問其公共成員。

只有派生類才能訪問基類的protected成員。對於外部代碼來說,這個可訪問性與私有成員一樣:外部代碼不能訪問private成員和protected成員。

基類的成員可以是虛擬(Virtual)的,也就是說,成員可以由繼承它的類重寫。派生類可以提供成員的其他實現代碼。這種實現代碼不會刪除原來的代碼,仍可以在類中訪問原來的代碼,但外部代碼不能訪問它們。如果沒有提供其他實現方式,通過派生類使用成員的外部代碼就自動訪問基類中成員的實現代碼。

虛擬成員不能是私有成員,因為這樣會自相矛盾--不能說成員可以由派生類重寫,同時派生類又不能訪問它。

基類還可以定義為抽象類。抽象類不能直接實例化。要使用抽象類,必須繼承這個類,抽象類可以有抽象成員,這些成員在基類中沒有實現代碼,這些實現代碼必須在派生類中提供。

當然,抽象基類可以提供成員的實現代碼,這是很常見的。不能實例化抽象類,並不意味著不能在抽象類中封裝功能。

最後,類可以是密封(seal)的。密封的類不能用作基類,所以沒有派生類。

小注:

重寫(Override):指在繼承關系中,在派生類中重寫由基類繼承來的方法,這時基類和派生類中就有兩個同名的方法,系統會根據對象的實際類型調用相應版本的方法。

 

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