C 基礎知識

2021-09-26 10:40:12 字數 1092 閱讀 9609

**:

1.c#中類是否支援多繼承?請說明原因。

答:不支援,需要用介面來實現多繼承

2.我們都知道乙個類可以有多個建構函式,並且c#會在我們建立類的時候預設的提供乙個無參的建構函式,當我實現了另外乙個有引數的建構函式的時候,我還能呼叫無引數的建構函式嗎?請說明原因。

答:不能,因為一旦你實現了乙個建構函式,c#就不會再提供預設的建構函式了,所以需要自己手動寫入乙個無引數的建構函式。

3.請簡略描述過載和重寫的區別?

答:方法過載提供了乙個相同的方法但是方法簽名的引數不同的呼叫的實現。

重寫提供了子類中改變父類方法行為的實現。

4.請問能設定類a可被繼承,但類a中的某個方法不能被重寫嗎?

答:能,將類a的修飾符標記為public、標記類a中的不允許重寫的方法為sealed

sealed關鍵字不僅可以限制類,也可以限制方法。

5.const和readonly有什麼區別?

答:const關鍵字用來宣告編譯時的常量

readonly用來宣告執行時的常量

6.什麼時候必須宣告乙個類為抽象類?

答:(1)當這個類中有抽象方法的時候,必須宣告類為抽象類

(2)該類沒有完全實現父類的抽象方法時,也需要宣告為抽象類

7.介面和抽象類的區別是什麼?

答:介面中所有的方法都不能有實現,並且不能指定方法的修飾符

抽象類中可以有方法的實現,也可以指定方法的訪問修飾符

第乙個繼承介面的類必須實現介面裡的所有方法

而抽象類中抽象方法的實現是由第乙個非抽象的派生類來實現

8.類的私有成員會被子類繼承嗎?請說明原因。

答:會被子類繼承,但是不能被訪問。所以看上去是不能被繼承的,實際上確實被繼承了。

9.請寫出c#中的單例模式

答:public class single

public static single getinstance ()

return instance;}}

10.現有乙個整數number,請寫乙個方法判斷這個整數是否是2的n次方

答:private static bool getflag(int num)

C 基礎知識

抽象類 abstract class 一種不可以被例項化的類。抽象類中一般含有抽象方法,當然也可有具體實現。繼承類只有實現過所有抽象類的抽象方法後才能被例項化。介面 inte ce 只含有共有抽象方法 public abstract method 的類。這些方法必須在子類中被實現。反射 程式集包含模...

c 基礎知識

或運算的意義是什麼 0 0 0 0 1 1 1 0 1 1 1 1 無進製與運算的意義是什麼 在vc中,視窗的每個屬性對應乙個只有一位為1的16位的二進位制數,當增加某屬性做或運算 即可,取消某個屬性只需與 上這個屬性的取反。cs.style ws maximizebox 和cs.style cs....

C 基礎知識

1 malloc和new區別與聯絡 a malloc malloc為函式,需要標頭檔案,申請的無型別,需要強制轉換 free釋放。示例 char p char malloc 10 sizeof char free p b new new是運算子,不需要標頭檔案,申請的是有型別的,自動呼叫建構函式 d...