狠狠色丁香婷婷综合尤物/久久精品综合一区二区三区/中国有色金属学报/国产日韩欧美在线观看 - 国产一区二区三区四区五区tv

LOGO OA教程 ERP教程 模切知識交流 PMS教程 CRM教程 開發(fā)文檔 其他文檔  
 
網(wǎng)站管理員

C#繼承

admin
2017年2月7日 18:52 本文熱度 6063

一、繼承的類型
1.1 實現(xiàn)繼承和接口繼承
C#中既有實現(xiàn)繼承,也有接口繼承。它們沒有強弱之分,因為兩種繼承都完全內(nèi)置于語言,因此很容易為不同的情形選擇最好的體系結(jié)構(gòu)。
實現(xiàn)繼承:表示一個類型派生于一個基類型,擁有該類型的所有成員字段和函數(shù)。
接口繼承:表示一個類型只繼承了函數(shù)的簽名,沒有繼承任何實現(xiàn)。在需要指定該類型具有某些可用的特征時,最好使用這種類型的繼承。接口繼承常常被看做提供了一種契約:通過類型派生于接口,從而保證為客戶提供某個功能。
1.2 多重繼承
 C#不支持多重實現(xiàn)繼承,但允許類型派生于多個接口。所以C#類可以派生于另一個類和任意多個接口。
1.3 結(jié)構(gòu)和類
前面說過了結(jié)構(gòu)是值類型,不支持繼承,但是每個結(jié)構(gòu)都自動派生于System.ValueType。實際上,不能建立結(jié)構(gòu)的類型層次,但結(jié)構(gòu)可以實現(xiàn)接口。
二、實現(xiàn)的繼承
類派生于另一個類,語法如下:

class MyDerivedClass:MyBaseClass
{
 
//function and data members here

}
C#不支持私有繼承,所以基類名上沒有public或private限定符。
類派生于接口,則用都好分隔。
2.1 虛方法
在C#中可以把在方法或者屬性的前面加上virtual,聲明基類的方法為虛方法或者虛屬性,虛方法和虛屬性的規(guī)則相同。語法如下:
class MyBaseClass
{
   
public virtual string
 VirtualMethod()
   
{
     
return "this method is virtual and define in MyBaseClass"
;
   }

}
在C#中,方法在默認(rèn)的情況下不是虛擬的,但(除構(gòu)造函數(shù)以外)可以顯示的聲明。派生類重寫基類的虛方法時,要使用override關(guān)鍵字顯示聲明:
注意:成員字段和靜態(tài)函數(shù)不能被聲明為virtual,因為這個概念只對類中的實例函數(shù)成員有意義。
2.2 隱藏方法
如果在基類和派生類中都聲明了簽名相同的方法,而基類中的方法又沒有聲明為virtual,派生類中的方法也沒有聲明成override,則派生類方法就會隱藏基類方法。結(jié)果是調(diào)用哪個類的方法取決于引用實例的變量類型,而不是實例本身的類型。
2.3 調(diào)用函數(shù)的基本版本
C#有一種特殊的語法用于從派生類中調(diào)用方法的基本版本:base.<MethodName>()。
2.4 抽象類和抽象函數(shù)
C#中的抽象類要聲明為abstract,抽象類不能實例化,抽象函數(shù)沒有執(zhí)行代碼,必須在非抽象的派生類中重寫。顯然抽象函數(shù)也是虛擬的,但不需要提供virtual關(guān)鍵字,而用abstract關(guān)鍵字。如果類包含了抽象函數(shù),那么該類也是抽象的,類必須用abstract聲明。
absttact class Building
{
  
public abstract decimal CalculateHeatingCost();//abstract method

}
2.5 密封類和密封方法
C#允許把類和方法聲明為sealed,對于類來說,這表示不能繼承該類;對于方法來說,這表示不能重寫該方法。
sealed class FinalClass
{
}
2.6 派生類的構(gòu)造函數(shù)
在創(chuàng)建派生類的實例時,實際上會有多個構(gòu)造函數(shù)在起作用。實例化類的構(gòu)造函數(shù)本身不能初始化類,還必須調(diào)用基類中的構(gòu)造函數(shù)。即派生類的實例構(gòu)造是按層次結(jié)構(gòu)進行的,順序是先執(zhí)行基類的構(gòu)造函數(shù),再執(zhí)行派生類的構(gòu)造函數(shù)。
基類的構(gòu)造函數(shù)總是最先調(diào)用,那么派生類的構(gòu)造函數(shù)可以在執(zhí)行的過程中調(diào)用基類的方法、屬性和其他成員,因為基類已經(jīng)構(gòu)造出來了,其他字段也初始化了。
//在結(jié)構(gòu)層次中添加無參數(shù)的構(gòu)造函數(shù)
public abstract class GenericCustomer
{
  
private string
 name;
  
public GenericCustomer():base
()
  
{
    name 
= "myName"
;
  }

}


//在結(jié)構(gòu)層次中添加帶參數(shù)的構(gòu)造函數(shù)
public class Nevermore60Customer:GenericCustomer
{
  
private int
 highCost;
  
public Nevermore60Customer(string name):base
(name)
  
{
    
this.highCost = 0
;
  }

}
三、修飾符
C#中完整的修飾符列表:
修飾符應(yīng)用于說明
public所有類型或成員任何代碼均可以訪問該方法
protected類型和內(nèi)嵌類型的所有成員只有派生的類型能訪問該方法
internal類型和內(nèi)嵌類型的所有成員只能在包含它的程序集中訪問該方法
private所有類型或成員只能在它所屬的類型中訪問該方法
protected internal類型和內(nèi)嵌類型的所有成員只能在包含它的程序集中和派生類型的代碼中訪問該方法

四、接口
接口中只能包含方法、屬性、索引器和事件的聲明。接口不能實例化,不能有構(gòu)造函數(shù)或字段,也不包含運算符重載。接口定義中還不允許聲明成員的修飾符,成員接口總是public的,不能聲明成virtual或者static
4.1 接口的定義和實現(xiàn)
//定義
namespace InterfaceTest
{
  
public interface
 IBankAccount
  
{
    
void PayIn(decimal
 amount);
    
bool Withdraw(decimal
 amount);
    
decimal
 Balance
    
{
      
get
;
    }

  }

}


//實現(xiàn)
namespace InterfaceTest
{
  
public class
 SaverAccount:IBankAccount
  
{
    
private decimal
 balance;
    
public void PayIn(decimal
 amount)
    
{
      balance 
+=
 amount;
    }

    
public bool Withdraw(decimal amount)
    
{
      
if(balance >=
 amount)
      
{
        balance 
-=
 amount;
        
return true
;
      }

      Console.WriteLine(
"Withdrawal attempt failed.");
      
return false
;
    }

    
public decimal Balance
    
{
      
get

      
{
        
return
 balance;
      }

    }

    
public override string ToString()
    
{
      
return String.Format("Venus Bank Saver:Balance = {0,6:C}"
,balance);
    }

  }

}

4.2 派生的接口
接口可以繼承,其方式與類的繼承相同。

該文章在 2017/2/7 18:52:32 編輯過
關(guān)鍵字查詢
相關(guān)文章
正在查詢...
點晴ERP是一款針對中小制造業(yè)的專業(yè)生產(chǎn)管理軟件系統(tǒng),系統(tǒng)成熟度和易用性得到了國內(nèi)大量中小企業(yè)的青睞。
點晴PMS碼頭管理系統(tǒng)主要針對港口碼頭集裝箱與散貨日常運作、調(diào)度、堆場、車隊、財務(wù)費用、相關(guān)報表等業(yè)務(wù)管理,結(jié)合碼頭的業(yè)務(wù)特點,圍繞調(diào)度、堆場作業(yè)而開發(fā)的。集技術(shù)的先進性、管理的有效性于一體,是物流碼頭及其他港口類企業(yè)的高效ERP管理信息系統(tǒng)。
點晴WMS倉儲管理系統(tǒng)提供了貨物產(chǎn)品管理,銷售管理,采購管理,倉儲管理,倉庫管理,保質(zhì)期管理,貨位管理,庫位管理,生產(chǎn)管理,WMS管理系統(tǒng),標(biāo)簽打印,條形碼,二維碼管理,批號管理軟件。
點晴免費OA是一款軟件和通用服務(wù)都免費,不限功能、不限時間、不限用戶的免費OA協(xié)同辦公管理系統(tǒng)。
Copyright 2010-2025 ClickSun All Rights Reserved