上個(gè)月離職了,這幾天整理了一些常見(jiàn)的面試題,整理成一個(gè)系列給大家分享一下,機(jī)會(huì)是給有準(zhǔn)備的人,面試造火箭,工作擰螺絲,不慌,共勉。
1.net必問(wèn)的面試題系列之基本概念和語(yǔ)法 <https://www.cnblogs.com/zhangmumu/p/11406751.html>
2.net必問(wèn)的面試題系列之面向?qū)ο?<https://www.cnblogs.com/zhangmumu/p/11408026.html>
3.net必問(wèn)的面試題系列之設(shè)計(jì)模式
4.net必問(wèn)的面試題系列之集合、異常、泛型
5.net必問(wèn)的面試題系列之簡(jiǎn)單算法
6.net必問(wèn)的面試題系列之?dāng)?shù)據(jù)庫(kù)
7.net必問(wèn)的面試題系列之web前端
問(wèn)題目錄
1.通常采用的訪問(wèn)修飾符有哪五種
2.多態(tài)的理解
3.什么是構(gòu)造函數(shù)
4.重寫(xiě)和重載的區(qū)別
5.class和struct的異同
6.構(gòu)造函數(shù)是否能被重寫(xiě)?
7.簡(jiǎn)述一下面向?qū)ο蟮娜筇匦?br> 8.抽象類(lèi)和接口有什么區(qū)別?
9.類(lèi)的執(zhí)行順序
10.接口是否可繼承接口?抽象類(lèi)是否可實(shí)現(xiàn)(implements)接口?抽象類(lèi)是否可繼承實(shí)現(xiàn)類(lèi)(concrete class)?
11.繼承最大的好處?
12.請(qǐng)說(shuō)說(shuō)引用和對(duì)象?
13.什么是匿名類(lèi),有什么好處
14.有哪些引用類(lèi)型,有哪些值類(lèi)型,有什么區(qū)別
15.C#中有沒(méi)有靜態(tài)構(gòu)造函數(shù),如果有是做什么用的?
16.怎樣理解靜態(tài)變量?靜態(tài)成員和非靜態(tài)成員的區(qū)別?
17.在項(xiàng)目中為什么使用接口?接口的好處是什么?什么是面向接口開(kāi)發(fā)?
18.屬性能在接口中聲明嗎?
19.什么時(shí)候用重載?什么時(shí)候用重寫(xiě)?
20.靜態(tài)方法可以訪問(wèn)非靜態(tài)變量嗎?如果不可以為什么?
1.通常采用的訪問(wèn)修飾符有哪五種
public:公開(kāi),訪問(wèn)無(wú)限制
internal:本項(xiàng)目?jī)?nèi)可以訪問(wèn)
internal protected:本項(xiàng)目的父子類(lèi)可以訪問(wèn)
protected:子類(lèi)可以訪問(wèn)
private:受保護(hù)的,只能在奔類(lèi)中使用,對(duì)外完全封閉
2.多態(tài)的理解
解釋?zhuān)和徊僮髯饔糜诓煌膶?duì)象,實(shí)現(xiàn)不同的結(jié)果。
作用:增強(qiáng)代碼的靈活性,重用性,可讀性
實(shí)現(xiàn):通過(guò)派生類(lèi),覆寫(xiě)基類(lèi)的虛方法、重寫(xiě)基類(lèi)的override方法。
3.什么是構(gòu)造函數(shù)
概念:構(gòu)造函數(shù)的方法名與類(lèi)型相同、沒(méi)有返回類(lèi)型
作用:完成對(duì)類(lèi)的對(duì)象初始化
創(chuàng)建一個(gè)類(lèi)的新對(duì)象時(shí),系統(tǒng)會(huì)自動(dòng)調(diào)用該構(gòu)造函數(shù)初始化新對(duì)象,
如果沒(méi)有寫(xiě)定義,那么系統(tǒng)會(huì)自動(dòng)提供一個(gè)不帶任何參數(shù)的public 構(gòu)造函數(shù)
4.重寫(xiě)和重載的區(qū)別
重寫(xiě)方法:關(guān)鍵字用override修飾,派生類(lèi)重寫(xiě)基類(lèi)的方法,方法命名、返回類(lèi)型,參數(shù)必須相同,
重載方法:方法名必須相同,參數(shù)列表必須不相同,返回類(lèi)型可以不相同。
作用:重寫(xiě)主要是實(shí)現(xiàn)面向?qū)ο蟮亩鄳B(tài)性、重載主要是實(shí)現(xiàn)實(shí)例化不同的對(duì)象
5.class和struct的異同?
相同點(diǎn):
1.都可以實(shí)現(xiàn)接口
不同點(diǎn):
1.class是引用類(lèi)型,struct是值類(lèi)型
2.class允許繼承、被繼承,struct不允許,只能繼承接口
3.class可以初始化變量,struct不可以
4.class可以有無(wú)參的構(gòu)造函數(shù),struct不可以,必須是有參的構(gòu)造函數(shù),而且在有參的構(gòu)造函數(shù)必須初始化所有成員
使用場(chǎng)景:
1.Class比較適合大的和復(fù)雜的數(shù)據(jù),表現(xiàn)抽象和多級(jí)別的對(duì)象層次時(shí)。Struct適用于作為經(jīng)常使用的一些數(shù)據(jù)組合成的新類(lèi)型,表示諸如點(diǎn)、矩形等主要用來(lái)存儲(chǔ)數(shù)據(jù)的輕量級(jí)對(duì)象時(shí),偏簡(jiǎn)單值。
2.Struct有性能優(yōu)勢(shì),Class有面向?qū)ο蟮臄U(kuò)展優(yōu)勢(shì)。
6.構(gòu)造函數(shù)是否能被重寫(xiě)?
構(gòu)造器Constructor不能被繼承,因此不能重寫(xiě),但可以被重載
7.簡(jiǎn)述一下面向?qū)ο蟮娜筇匦?br>
封裝、繼承、多態(tài)。
封裝:是通過(guò)把對(duì)象的屬性的實(shí)現(xiàn)細(xì)節(jié)隱藏起來(lái),僅對(duì)外提供公共的訪問(wèn)方法。
繼承:是通過(guò)子類(lèi)繼承基類(lèi)、繼承抽象類(lèi)、繼承接口實(shí)現(xiàn)的。
多態(tài):是通過(guò)重寫(xiě)基類(lèi)的override 方法、重寫(xiě)虛方法實(shí)現(xiàn)的。
好處是,方便維護(hù)、易擴(kuò)展。
缺點(diǎn)是:比面向過(guò)程性能低。
8.抽象類(lèi)和接口有什么區(qū)別?
相同點(diǎn):都不能直接實(shí)例化
1.抽象類(lèi)用abstract修飾、接口用interface修飾
2.抽象類(lèi)中的方法可以實(shí)現(xiàn),也可以不實(shí)現(xiàn),有抽象方法的類(lèi)一定要用abstract修飾,接口中的方法不允許實(shí)現(xiàn)
3.抽象類(lèi)只能單繼承,接口支持多繼承
4.抽象類(lèi)有構(gòu)造方法,接口不能有構(gòu)造方法
5.接口只負(fù)責(zé)功能的定義,通過(guò)接口來(lái)規(guī)范類(lèi)的,(有哪些功能),而抽象類(lèi)即負(fù)責(zé)功能的定義有可以實(shí)現(xiàn)功能(實(shí)現(xiàn)了哪些功能)
9.類(lèi)的執(zhí)行順序
執(zhí)行順序:父類(lèi),子類(lèi),靜態(tài)塊,靜態(tài)字段,非靜態(tài)塊,非靜態(tài)字段,構(gòu)造器,方法
10.接口是否可繼承接口?抽象類(lèi)是否可實(shí)現(xiàn)(implements)接口?抽象類(lèi)是否可繼承實(shí)現(xiàn)類(lèi)(concrete class)?
接口可以繼承接口,抽象類(lèi)可以實(shí)現(xiàn)接口,抽象類(lèi)可以繼承實(shí)現(xiàn)類(lèi),但前提是實(shí)現(xiàn)類(lèi)必須有明確的構(gòu)造函數(shù)。
11.繼承最大的好處?
對(duì)父類(lèi)成員進(jìn)行重用,增加代碼的可讀性、靈活性。
12.請(qǐng)說(shuō)說(shuō)引用和對(duì)象?
對(duì)象和引用時(shí)分不開(kāi)的,對(duì)象生成一個(gè)地址,放在堆里面,引用則指向這個(gè)地址,放在棧里面
13.什么是匿名類(lèi),有什么好處
不用定義、沒(méi)有名字的類(lèi),使用一次便可丟棄。好處是簡(jiǎn)單、隨意、臨時(shí)的。
14.有哪些引用類(lèi)型,有哪些值類(lèi)型,有什么區(qū)別
引用類(lèi)型:類(lèi)、接口、委托、字符串、數(shù)組
值類(lèi)型:整形、浮點(diǎn)型、結(jié)構(gòu)體、枚舉、bool
值類(lèi)型和引用類(lèi)型的區(qū)別在于,值類(lèi)型的變量直接存放實(shí)際的數(shù)據(jù),而引用類(lèi)型的變量存放的則是數(shù)據(jù)的地址,即對(duì)象的引用。
默認(rèn)值,值類(lèi)型是0,引用類(lèi)型null。
15.C#中有沒(méi)有靜態(tài)構(gòu)造函數(shù),如果有是做什么用的?
有.
特點(diǎn):
靜態(tài)構(gòu)造函數(shù)既沒(méi)有訪問(wèn)修飾符,也沒(méi)有參數(shù)。
在創(chuàng)建第一個(gè)實(shí)例或引用任何靜態(tài)成員之前,將自動(dòng)調(diào)用靜態(tài)構(gòu)造函數(shù)來(lái)初始化類(lèi)。
無(wú)法直接調(diào)用靜態(tài)構(gòu)造函數(shù)。在程序中,用戶(hù)無(wú)法控制何時(shí)執(zhí)行靜態(tài)構(gòu)造函數(shù)。
用途:
當(dāng)類(lèi)使用日志文件時(shí),將使用這種構(gòu)造函數(shù)向日志文件中寫(xiě)入項(xiàng)。
16.怎樣理解靜態(tài)變量?靜態(tài)成員和非靜態(tài)成員的區(qū)別?
靜態(tài)變量屬于類(lèi),而不屬于對(duì)象;并對(duì)所有對(duì)象所享;靜態(tài)成員在加類(lèi)的時(shí)候就被加載。
17.在項(xiàng)目中為什么使用接口?接口的好處是什么?什么是面向接口開(kāi)發(fā)?
接口是一種約束,描述類(lèi)的公共方法/公共屬性,不能有任何的實(shí)現(xiàn)
好處是:結(jié)構(gòu)清晰,類(lèi)之間通信簡(jiǎn)單易懂,擴(kuò)展性好,提高復(fù)用性。
面向接口開(kāi)發(fā)就是指面向抽象協(xié)議編程,實(shí)現(xiàn)者在實(shí)現(xiàn)時(shí)
18.屬性能在接口中聲明嗎?
可以,不能有訪問(wèn)修飾符,不能初始化賦值。
19.什么時(shí)候用重載?什么時(shí)候用重寫(xiě)?
當(dāng)一個(gè)類(lèi)需要用不同的實(shí)現(xiàn)來(lái)做同一件事情,此時(shí)應(yīng)該用重寫(xiě),而重載是用不同的輸入做同一件事情
20.靜態(tài)方法可以訪問(wèn)非靜態(tài)變量嗎?如果不可以為什么?
靜態(tài)方法和非靜態(tài)變量不是同一生命周期,靜態(tài)方法屬于類(lèi),非靜態(tài)變量屬于具體的對(duì)象,靜態(tài)方法和具體的對(duì)象沒(méi)有任何關(guān)聯(lián)
熱門(mén)工具 換一換

感谢您访问我们的网站,您可能还对以下资源感兴趣:
调教肉文小说-国产成本人片免费av-空姐av种子无码-在线观看免费午夜视频-综合久久精品激情-国产成人丝袜视频在线观看软件-大芭区三区四区无码-啊啊好爽啊啊插啊用力啊啊-wanch视频网-国产精品成人a免费观看