c#中的類定義
c#使用class關鍵字來定義類:
class myclass
預設情況下,類宣告為內部的,即只有當前工程中的**才能訪問
也可以用internal關鍵字顯式宣告:
internal class myclass
可以指定類是公共的,即可以由其他工程中的**來訪問
要用public關鍵字宣告:
public class myclass
還可以指定類是
抽象類:不能例項化,只能繼承,可以有抽象成員,使用關鍵字abstract
密封類:不能繼承,使用關鍵字sealed
宣告抽象類:
public abstract class myclass
抽象類可以是public的,也可以是internal的
宣告密封類:
public sealed class myclass
抽象類可以是public的,也可以是internal的
可以在類定義中指定繼承,方式是類名後加冒號再加基類名:
public class myclass : mybase
注意:在c#中只能有乙個基類,如果繼承了個抽象類,就必須執行所繼承的所有抽象成員(除非派生類也是抽象的)
編譯器不允許派生類的可訪問性比其基類更高
即內部類可以繼承於乙個公共類,但公共類不能繼承於乙個內部類
如果沒有指定基類,那麼被定義的類繼承自system.object
還可以在冒號後面指定支援的介面
如果指定了基類,冒號後面跟著基類名,再接著乙個或多個指定的介面,之間用逗號分割
例如:給myclass指定乙個介面:
public class myclass : imyinte***ce
給myclass指定基類和介面:
public class myclass : mybase, imyinte***ce
指定多個介面:
public class myclass : mybase, imyinte***ce, imysecondinte***ce
訪問修飾符組合:
修飾符 含義
none or internal 類只能在當前工程中訪問
public 類可以在任何地方訪問
abstract or internal abstract 類只能在當前工程中訪問,不能例項化,只能繼承
public abstract 類可以在任何地方訪問,不能例項化,只能繼承
sealed or internal sealed 類只能在當前工程中訪問,不能派生,只能例項化
public sealed 類可以在任何地方訪問,不能派生,只能例項化
介面的定義
與類的宣告方式類似,使用inte***ce關鍵字:
inte***ce imyinte***ce
修飾符關鍵字public和internal的使用方式相同:
public inte***ce imyinte***ce
關鍵字abstract和sealed不能在介面中使用
因為介面不包含執行**,不能直接例項化,而且必須可以繼承
介面繼承跟類相似,不過可以使用多個基介面:
public inte***ce imyinte***ce : imybaseinte***ce, imybaseinte***ce2
介面不是類,不從system.object繼承
由於多型性使system.object的成員可以使用這些介面
system.object
公共建構函式
object 初始化 object 類的新例項。
公共方法
equals 已過載。 確定兩個 object 例項是否相等。
gethashcode 用作特定型別的雜湊函式。
gettype 獲取當前例項的 type。
referenceequals 確定指定的 object 例項是否是相同的例項。
tostring 返回表示當前 object 的 string。
受保護的方法
finalize 析構函式
memberwiseclone 建立當前 object 的淺表副本。
C 中類和介面的區別
類是c 中重要的知識點,那麼常用的類有哪些呢?類可以分為 抽象類 abstract 密封類 sealed 靜態類 static 關鍵字 abstract 抽象類 抽象類就是不能使用new進行例項化的類,通俗來講就是沒有具體例項化的類。作用 如果子類擁有共同特性,可以把這個特性放到抽象類中,子類繼承這...
介面的定義
類的定義 class apublica publica int a 普通類裡面的 方法和屬性 的訪問修飾符要小於等於當前類的訪問修飾符 可以是public protected private static final int variable static int staticvariable fi...
C 類,介面的拓展
1 定義個拓展類,這個類必須是靜態類,static 2 定義拓展方法,這個方法也必須是靜態的 3 拓展方法的語法比較奇怪,第乙個引數是被拓展的類,而且必須在前面新增this關鍵字 4 不僅可以對類進行拓展,也可以對介面進行拓展 例子 static public vector3 getsides th...