2019-09-16 11:42:12 5777瀏覽
本篇文章扣丁學(xué)堂Android培訓(xùn)小編給小伙伴們分享一下C#面試時(shí)常常會(huì)遇到的C#面試題匯總及答案,希望對(duì)面試Android開(kāi)發(fā)工程師的小伙伴有所幫助。
1、請(qǐng)簡(jiǎn)略描述重載和重寫(xiě)的區(qū)別?
答:方法重載提供了一個(gè)相同的方法但是方法簽名的參數(shù)不同的調(diào)用的實(shí)現(xiàn)。
重寫(xiě)提供了子類(lèi)中改變父類(lèi)方法行為的實(shí)現(xiàn)。
2、C#中類(lèi)是否支持多繼承?請(qǐng)說(shuō)明原因。
答:不支持,需要用接口來(lái)實(shí)現(xiàn)多繼承。
3、我們都知道一個(gè)類(lèi)可以有多個(gè)構(gòu)造函數(shù),并且C#會(huì)在我們創(chuàng)建類(lèi)的時(shí)候默認(rèn)的提供一個(gè)無(wú)參的構(gòu)造函數(shù),當(dāng)我實(shí)現(xiàn)了另外一個(gè)有參數(shù)的構(gòu)造函數(shù)的時(shí)候,我還能調(diào)用無(wú)參數(shù)的構(gòu)造函數(shù)嗎?請(qǐng)說(shuō)明原因。
答:不能,因?yàn)橐坏┠銓?shí)現(xiàn)了一個(gè)構(gòu)造函數(shù),C#就不會(huì)再提供默認(rèn)的構(gòu)造函數(shù)了,所以需要自己手動(dòng)寫(xiě)入一個(gè)無(wú)參數(shù)的構(gòu)造函數(shù)。
4、const和readonly有什么區(qū)別?
答:const關(guān)鍵字用來(lái)聲明編譯時(shí)的常量
readonly用來(lái)聲明運(yùn)行時(shí)的常量
5、請(qǐng)問(wèn)能設(shè)置類(lèi)A可被繼承,但類(lèi)A中的某個(gè)方法不能被重寫(xiě)嗎?
答:能,將類(lèi)A的修飾符標(biāo)記為public、標(biāo)記類(lèi)A中的不允許重寫(xiě)的方法為sealed
sealed關(guān)鍵字不僅可以限制類(lèi),也可以限制方法。
6、什么時(shí)候必須聲明一個(gè)類(lèi)為抽象類(lèi)?
(1)當(dāng)這個(gè)類(lèi)中有抽象方法的時(shí)候,必須聲明類(lèi)為抽象類(lèi)
(2)該類(lèi)沒(méi)有完全實(shí)現(xiàn)父類(lèi)的抽象方法時(shí),也需要聲明為抽象類(lèi)
7、類(lèi)的私有成員會(huì)被子類(lèi)繼承嗎?請(qǐng)說(shuō)明原因。
答:會(huì)被子類(lèi)繼承,但是不能被訪(fǎng)問(wèn)。所以看上去是不能被繼承的,實(shí)際上確實(shí)被繼承了。
8、接口和抽象類(lèi)的區(qū)別是什么?
答:接口中所有的方法都不能有實(shí)現(xiàn),并且不能指定方法的修飾符抽象類(lèi)中可以有方法的實(shí)現(xiàn),也可以指定方法的訪(fǎng)問(wèn)修飾符第一個(gè)繼承接口的類(lèi)必須實(shí)現(xiàn)接口里的所有方法,而抽象類(lèi)中抽象方法的實(shí)現(xiàn)是由第一個(gè)非抽象的派生類(lèi)來(lái)實(shí)現(xiàn)。
想要了解更多關(guān)于C#方面內(nèi)容的小伙伴,請(qǐng)關(guān)注扣丁學(xué)堂Android培訓(xùn)官網(wǎng)、微信等平臺(tái),扣丁學(xué)堂IT職業(yè)在線(xiàn)學(xué)習(xí)教育有專(zhuān)業(yè)的Android講師為您指導(dǎo),此外扣丁學(xué)堂老師精心推出的Android視頻教程定能讓你快速掌握Android從入門(mén)到精通開(kāi)發(fā)實(shí)戰(zhàn)技能。
【關(guān)注微信公眾號(hào)獲取更多學(xué)習(xí)資料】 【掃碼進(jìn)入JavaEE/微服務(wù)VIP免費(fèi)公開(kāi)課】
查看更多關(guān)于“Android開(kāi)發(fā)技術(shù)”的相關(guān)資訊>>