日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

。net面试题(2)

發(fā)布時間:2025/4/5 49 豆豆
生活随笔 收集整理的這篇文章主要介紹了 。net面试题(2) 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

什么是抽象類(abstract class)?
一種不可以被實例化的類。抽象類中一般含有抽象方法,當然也可有具體實現(xiàn)。繼承類只有實現(xiàn)過所有抽

象類的抽象方法后才能被實例化。

何時必須聲明一個類為抽象類?
當這個類中包含抽象方法時,或是該類并沒有完全實現(xiàn)父類的抽象方法時。

接口(interface)是什么?
只含有共有抽象方法(public abstract method)的類。這些方法必須在子類中被實現(xiàn)。

為什么不能指定接口中方法的修飾符?
接口中的方法用來定義對象之間通信的契約,指定接口中的方法為私有或保護沒有意義。他們默認為公有方法。

可以繼承多個接口么?
當然。

那么如果這些接口中有重復的方法名稱呢?
這種情況中你可以決定如何實現(xiàn)。當然需要特別得小心。但是在編譯環(huán)節(jié)是沒有問題的。

接口和抽象類的區(qū)別是什么?
接口中所有方法必須是抽象的,并且不能指定方法的訪問修飾符。抽象類中可以有方法的實現(xiàn),也可以指

定方法的訪問修飾符。

?


詳述.NET里class和struct的異同!

類是引用類型,可以繼承類、接口和被繼承,有默認的構造函數(shù),有析構函數(shù),可以使用abstract和sealed,有protected修飾符,必須使用new初始化。
結構是值類型,只能繼承接口,不能被繼承,沒有默認的構造函數(shù),可以創(chuàng)建,沒有析構函數(shù),不可以用abstract和sealed,沒有protected修飾符,可以不用new初始化。


如何選擇結構還是類
1. 堆棧的空間有限,對于大量的邏輯的對象,創(chuàng)建類要比創(chuàng)建結構好一些
2. 結構表示如點、矩形和顏色這樣的輕量對象
例如,如果聲明一個含有 1000 個點對象的數(shù)組,則將為引用每個對象分配附加的內(nèi)存。
在此情況下,結構的成本較低。
3. 在表現(xiàn)抽象和多級別的對象層次時,類是最好的選擇
4. 大多數(shù)情況下該類型只是一些數(shù)據(jù)時,結構時最佳的選擇


C#中的接口和類有什么異同。
異:
不能直接實例化接口。
接口不包含方法的實現(xiàn)。
接口、類和結構可從多個接口繼承。但是C# 只支持單繼承:類只能從一個基類繼承實現(xiàn)。
類定義可在不同的源文件之間進行拆分。
同:
接口、類和結構可從多個接口繼承。
接口類似于抽象基類:繼承接口的任何非抽象類型都必須實現(xiàn)接口的所有成員。
接口可以包含事件、索引器、方法和屬性。
一個類可以實現(xiàn)多個接口。


const和readonly有什么區(qū)別?
const關鍵字用來聲明編譯時常量,readonly用來聲明運行時常量。

用sealed修飾的類有什么特點
sealed 修飾符用于防止從所修飾的類派生出其它類。如果一個密封類被指定為其他類的基類,則會發(fā)生編譯時錯誤。
密封類不能同時為抽象類。
sealed 修飾符主要用于防止非有意的派生,但是它還能促使某些運行時優(yōu)化。具體說來,由于密封類永

遠不會有任何派生類,所以對密封類的實例的虛擬函數(shù)成員的調(diào)用可以轉(zhuǎn)換為非虛擬調(diào)用來處理。


虛函數(shù)的用法
答:
1)virtual指明一成員函數(shù)為虛函數(shù),而virtual僅用于類的定義里,在類外可不加此關鍵字.
2)一個類的成員函數(shù)被定義為虛函數(shù)時,子類該函數(shù)仍保持虛函數(shù)特征.
3)子類覆蓋此函數(shù)時,定義里可不加virtual關鍵字,但函數(shù)聲明要和基類的完全一致!且此聲明是必須的.
4)不是純虛函數(shù)時,父類的虛函數(shù)必須要實現(xiàn); 而若將父類的虛函數(shù)設定為純虛函數(shù)時,子類必需要覆蓋之而且必須要實現(xiàn)之!

解釋virtual、sealed、override和abstract的區(qū)別
virtual申明虛方法的關鍵字,說明該方法可以被重寫
sealed說明該類不可被繼承
override重寫基類的方法
abstract申明抽象類和抽象方法的關鍵字,抽象方法不提供實現(xiàn),由子類實現(xiàn),抽象類不可實例化。


重載和覆寫有什么區(qū)別?
答:重載是方法的名稱相同,不同的參數(shù)類型,不同的參數(shù)個數(shù),不同的參數(shù)順序。覆寫提供了子類中改變父類方法行為的實現(xiàn)(是進行基類中函數(shù)的重寫)。

在方法定義中,virtual有什么含義?
答:被virtual修飾的方法可以被子類覆寫

能夠?qū)⒎庆o態(tài)的方法覆寫成靜態(tài)方法嗎?
答:不能,覆寫方法的簽名必須與被覆寫方法的簽名保持一致,除了將virtual改為override。

可以覆寫私有的虛方法嗎?
答:不可以,甚至子類中無法訪問父類中的私有方法

能夠阻止某一個類被其他類繼承嗎?
答:可以,使用關鍵字sealed

能夠?qū)崿F(xiàn)允許某個類別繼承,但不允許其中的某個方法被覆寫嗎?
答:可以,標記這個類為public,并標記這個方法為sealed。


如何區(qū)別重載方法?
不同的參數(shù)類型,不同的參數(shù)個數(shù),不同的參數(shù)順序

?


C#中的委托是什么?事件是不是一種委托??????
委托可以把一個方法作為參數(shù)代入另一個方法。委托可以理解為指向一個函數(shù)的引用。是,是一種特殊的委托


C#中的堆和棧

棧(Stack)由系統(tǒng)管理生存期,存儲代碼執(zhí)行和調(diào)用路徑,執(zhí)行或調(diào)用完畢即從棧中清除;
堆(Heap)中保存值和對象,調(diào)用完畢之后依然存在,由垃圾回收器查找棧中有無指向該值或?qū)ο蟮囊?#xff0c;無則從堆中刪除

?

你對泛型了解嗎?簡單說明一下泛型的有什么好處?

泛型:通過參數(shù)化類型來實現(xiàn)在同一份代碼上操作多種數(shù)據(jù)類型。利用“參數(shù)化類型”將類型抽象化,從而實現(xiàn)靈活的復用
好處是——類型安全和減少裝箱、拆箱。提高性能、類型安全和質(zhì)量,減少重復性的編程任務


C#中所有對象共同的基類是什么?
System.Object.

如何在C#中實現(xiàn)繼承?
在類名后加上一個冒號,再加上基類的名稱。


C#支持多重繼承嗎?
不支持。可以用接口來實現(xiàn)。

被protected修飾的屬性/方法在何處可以訪問?
在繼承或間接繼承與這個類的子類中可以訪問。


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


C#提供一個默認的無參構造函數(shù),當我實現(xiàn)了另外一個有一個參數(shù)的構造函數(shù)時,還想保留這個無參數(shù)的構

造函數(shù)。這樣我應該寫幾個構造函數(shù)?
答:兩個,一旦你實現(xiàn)了一個構造函數(shù),C#就不會再提供默認的構造函數(shù)了,所以需要手動實現(xiàn)那個無參構造

函數(shù)。

轉(zhuǎn)載于:https://www.cnblogs.com/wyj1990/archive/2012/04/11/2441891.html

總結

以上是生活随笔為你收集整理的。net面试题(2)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。