C物件導向部分面試題

2021-05-21 11:57:55 字數 1930 閱讀 3295

1. 傳入某個屬性的set方法的隱含引數的名稱是什麼?

get set

value,它的型別和屬性所聲名的型別相同。

2. 如何在c#中實現繼承?

派生類:基類

3. c#支援多重繼承麼?

不支援。可以用介面來實現。

4. 被protected修飾的屬性/方法在何處可以訪問?

在繼承或間接繼承於個類的子類中可以訪問。

5. 私有成員會被繼承麼?

會,但是不能被訪問。所以看上去他們似乎是不能被繼承的,但實際上確實被繼承了。

6. 請描述一下修飾符protected internal。

被protected internal修飾的屬性/方法只能在它的在同乙個程式集(assembly)中的子類被訪問。只限於當前專案,或者從該項目的類繼承的類才可以訪問(可跨專案)

7. c#提供乙個預設的無引數建構函式,當我實現了另外乙個有乙個引數的建構函式時候,還想保留這個無引數的建構函式。這樣我應該寫幾個建構函式?

兩個,一旦你實現了乙個建構函式,c#就不會再提供預設的建構函式了,所以需要手動實現那個無引數建構函式。

8. c#中所有物件共同的基類是什麼?

system.object.

9. 過載和覆寫有什麼區別?

過載提供了對乙個方法簽名的不同引數呼叫的實現。覆寫提供了子類中改變父類方法行為的實現。

10. 在方法定義中,virtual有什麼含意?

被virtual修飾的方法可以被子類覆寫。如果我們想要在派生類中重寫基類方法,可以將基類的方法修飾為virtual,同時派生類中的方法使用override修飾

11. 能夠將非靜態的方法覆寫成靜態方法麼?

不能,覆寫方法的簽名必須與被覆寫方法的簽名保持一致,除了將virtual改為override。

12. 可以覆寫私有的虛方法麼?

不可以,甚至子類中無法訪問父類中的私有方法。

13. 能夠阻止某乙個類被其他類繼承麼?

能可以使用sealed類,即通過sealed關鍵字防止類被其它類繼承。

14. 能夠實現允許某個類被繼承,但不允許其中的某個方法被覆寫麼?

可以,標記這個類為public,並標記這個方法為sealed。

同樣,sealed關鍵字也可以限制基類中的方法被擴充類重寫。

15. 什麼是抽象類(abstract class)?

一種不可以被例項化的類。抽象類中一般含有抽象方法,當然也可有具體實現。繼承類只有實現過所有抽象類的抽象方法後才能被例項化。

16. 何時必須宣告乙個類為抽象類?

當這個類中包含抽象方法時,或是該類並沒有完全實現父類的抽象方法時。

17. 介面(inte***ce)是什麼?

只含有共有抽象方法(public abstract method)的類。這些方法必須在子類中被實現。

18. 為什麼不能指定介面中方法的修飾符?

介面中的方法用來定義物件之間通訊的契約,指定介面中的方法為私有或保護沒有意義。他們預設為公有方法。

19. 可以繼承多個介面麼?

當然。20. 那麼如果這些介面中有重複的方法名稱呢?

這種情況中你可以決定如何實現。當然需要特別得小心。但是在編譯環節是沒有問題的。

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

介面中所有方法必須是抽象的,並且不能指定方法的訪問修飾符。抽象類中可以有方法的實現,也可以指定方法的訪問修飾符。

22. 如何區別過載方法?

不同的引數型別,不同的引數個數,不同的引數順序。

23. const和readonly有什麼區別?

const關鍵字用來宣告編譯時常量,readonly用來宣告執行時常量。

24. system.string 和system.stringbuilder有什麼區別?

system.string是不可變的字串。system.stringbuilder存放了乙個可變的字串,並提供一些對這個字串修改的方法。

物件導向 集合 異常面試題

必須掌握 1.物件導向的特徵有哪些方面 複習物件導向知識點 計算機軟體系統是現實生活中的業務在計算機中的對映,而現實生活中的業務其實就是乙個個物件協作的過程。物件導向程式設計就是按現實業務一樣的方式將程式 按乙個個物件進行組織和編寫,讓計算機系統能夠識別和理解用物件方式組織和編寫的程式 這樣就可以把...

華碩面試題 C 部分

一 基本知識 1 寫出以下類derived的建構函式的定義,使其aa和bb的值分別為i 和j,其基類的成員a的值為k.class base class derived public base 2 指出下列程式中錯誤,並改正 include include class string string vo...

華數面試題 C 部分

一 基本知識 1 寫出以下類derived的建構函式的定義,使其aa和bb的值分別為i 和j,其基類的成員a的值為k.class base class derived public base 2 指出下列程式中錯誤,並改正 include include class string string vo...