1樓:網友
靜態類1 不能有例項建構函式,只能有靜態建構函式,且不能對其建構函式使用訪問修飾符。
2 靜態類是密封的不能被繼承。
3 靜態類中只能包含靜態成員。
c#中為什麼靜態類不能被繼承?
2樓:網友
靜態類只用於包含靜態成員的型別,它既不能例項化,靜態類的特性是防止繼承,防止外部來new。它相當於乙個sealed abstract類。
static class myutility}靜態類的幾個注意點。
靜態類不能有例項構造器。
靜態類不能有任何例項成員。
靜態類不能使用abstract或sealed修飾符。
靜態類預設繼承自根類,不能顯式指定任何其他基類。
靜態類不能指定任何介面實現。
靜態類的成員不能有protected或protected internal訪問保護修飾符。
c#的靜態類和抽象類都不能例項化,有什麼區別
3樓:時針樓
別關注特點。雖然都不能被例項化,但是這兩種東西真心沒什麼可放在一起區分的。壓根就不需要放在一起比較。
4樓:網友
靜態類起到組織歸類的功能,把一些功能相似的全域性函式用靜態類包裝在一起,使用時不需要生存例項,直接通過類名呼叫這些函式就可,不需要生存例項。相當於不同型別的函式歸類到不同目錄中,由於c#中沒有全域性函式這種概念,任何函式必須是類中的成員,所以自定義的一些通用函式也只能放在靜態類中。
抽象類是乙個模板,裡面只宣告瞭一些函式頭,沒有處理**,沒法生存例項,所以要定義它的繼承類,並把抽象類中的函式實體化(即加入處理**),才能使用。
抽象類的意義是為所有繼承它的類提供一套標準的介面,用抽象類定義的變數可以引用任何繼承它的類的例項,這樣體現了統一性和多型性,呼叫的函式名及引數是統一的,但函式體內怎麼處理由引用的類的**決定的。
c#中子類可以使用父類的靜態屬性和方法叫繼承麼?
5樓:網友
靜態具有全域性的概念,不屬於了單個的類例項化物件,而是屬於類整體,所以不存在繼承靜態成員這個說法,但是基類的派生類可以使用基類的靜態成員(用類級別實現)。
6樓:水中魚
這個和繼承是兩個概念。子類,是包含在父類中的類,繼承是在原類的基礎上擴充套件,相互之間的關係完全不同。
靜態方法和靜態變數能繼承嗎?靜態類有什麼作用啊?
7樓:網友
靜態類不能繼承,靜態類的作用我覺的就是用來放置靜態方法和靜態變數的,使用的時候不用初始化,不用擔心引用傳遞不了。
8樓:
首先宣告:不存在繼承性。
靜態類,靜態變數,靜態方法,這些東西都是屬於它父級的全域性性的東西,如靜態類在namespase下共用,以及靜態變數和靜態方法,都是屬於namespase級別的共享資料,不存在繼承不繼承的問題。
你見過那個東西是繼承namespase的。
9樓:
不能繼承,靜態類可以看做是放置相關靜態方法的容器,它從結構上看更清楚,如 math 靜態類包括各類數學函式,pi等。
10樓:網友
不能,靜態類用的比較比多的地方就是設計模試,如單態或叫單例,工廠模試等等。
隨便寫一小段,不標準啊:
public class factory
哪麼這樣保證整個程式中只有乙個該例項。
還有一些static,我感覺就是為了使用方便。如;
11樓:手機使用者
靜態成員屬於類作用域,但不屬於類物件,程式一執行就初始化了,不可能再在構造物件的時候再初始化了吧。
你用賦值語句賦值就好。
靜態成員其實和全域性變數地位是一樣的,只不過編譯器把它的使用限制在類作用域內(不是類物件,它不屬於類物件成員)
要在類的定義外(不是類作用域外)初始化,如在cpp檔案中size_t a::ass = 0;//a::表示a類作用域,所以還是在類作用域內初始化的。
另外static不需要重複寫。
c#中不能繼承object類裡面的靜態方法
12樓:在忠濟寺睡懶覺的黑豹
首先equals不是靜態方法,是virtual。你定位到源可以看到。public virtual bool equals(object obj);
其次,直接使用 referenceequals是可以的,但是不允許string、int等用點的方法點出來,比如你有乙個類直接顯式繼承object,但是這個類裡的string還是string類的例項,而string也同樣繼承自object ,應該是派生類中使用的隱藏基類成員,把該成員函式在派生類中new 一下,方法其實就相當於在派生類中被刪除了。比如:
class a:b
基類b中有fields欄位成員,a在繼承b後用new簽名覆蓋,相當於刪除了基類的成員。
我剛才看了看,int的equals是被 override了。我這只是看的源,具體的你可以反編譯一下看看。
c#中,非靜態類中的靜態成員(static members)會在子類中被繼承嗎?
13樓:
記得是不能繼承的,可以直接用。
可以在子類寫個靜態方法,呼叫父類的靜態方法,這個通過編譯器能檢查出來的。
java中繼承和多型區別,c裡的類的繼承和多型與Java裡的繼承和多型的區別是?
總的來說 編譯時看父類,執行時看子類。繼承,子類繼承父類中所以的屬性和方法,但是對於private的屬相和方法,由於這個是父類的隱私,所以子類雖然是繼承了,但是沒有可以訪問這些屬性和方法的引用,所以相當於沒有繼承到。很多時候,可以理解為,沒有繼承。多型 就是父類引用可以持有子類物件。這時候只能呼叫父...
c 語言中類中的靜態資料成員為什麼必須在類體外初始化
可以通過以下幾個例子更形象的說明這個問題 test.cpp include class a int main 編譯以上 會出現 對 a a 未定義的引用 錯誤。這是因為靜態成員變數a未定義,也就是還沒有分配記憶體,顯然是不可以訪問的。再看如下例子 test.cpp include class a i...
c泛型方法中,如何呼叫類引數中的靜態方法
很明顯,你的函式要抄做的是乙個把弱型別的datatable對映到強型別list的orm功能,但getentitybydatarow這個對映函式根本不應該定義到t中,你可以單獨寫乙個靜態類,裡面使用反射技術,完成反射就可以了。既然在同類中,直接寫方法名不行麼?試試last.add dynamic t ...