日韩欧美另类久久久精品_亚洲大色堂人在线无码_国产三级aⅴ在线播放_在线无码aⅴ精品动漫_国产精品精品国产专区

我要投稿 投訴建議

C#基礎(chǔ)的面試試題收集

時(shí)間:2022-09-25 23:00:18 面試試題 我要投稿
  • 相關(guān)推薦

C#基礎(chǔ)的面試試題收集

  能夠?qū)⒎庆o態(tài)的方法覆寫(xiě)成靜態(tài)方法么?

C#基礎(chǔ)的面試試題收集

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

  可以覆寫(xiě)私有的虛方法么?

  不可以,甚至子類(lèi)中無(wú)法訪(fǎng)問(wèn)父類(lèi)中的私有方法。

  能夠阻止某一個(gè)類(lèi)被其他類(lèi)繼承么?

  可以,使用關(guān)鍵字sealed。

  能夠?qū)崿F(xiàn)允許某個(gè)類(lèi)被繼承,但不允許其中的某個(gè)方法被覆寫(xiě)么?

  可以,標(biāo)記這個(gè)類(lèi)為public,并標(biāo)記這個(gè)方法為sealed。

  被virtual修飾的方法可以被子類(lèi)覆寫(xiě)。

  什么是抽象類(lèi)(abstract class)?

  一種不可以被實(shí)例化的類(lèi)。抽象類(lèi)中一般含有抽象方法,當(dāng)然也可有具體實(shí)現(xiàn)。繼承類(lèi)只有實(shí)現(xiàn)過(guò)所有抽象類(lèi)的抽象方法后才能被實(shí)例化。

  何時(shí)必須聲明一個(gè)類(lèi)為抽象類(lèi)?

  傳入某個(gè)屬性的set方法的隱含參數(shù)的名稱(chēng)是什么?

  value,它的類(lèi)型和屬性所聲名的類(lèi)型相同。

  如何在C#中實(shí)現(xiàn)繼承?

  在類(lèi)名后加上一個(gè)冒號(hào),再加上基類(lèi)的名稱(chēng)。

  C#支持多重繼承么?

  類(lèi)之間不支持,接口之間支持。類(lèi)對(duì)接口叫做實(shí)現(xiàn),不叫繼承。

  被protected修飾的屬性/方法在何處可以訪(fǎng)問(wèn)?

  在繼承或間接繼承與這個(gè)類(lèi)的子類(lèi)中可以訪(fǎng)問(wèn)。

  私有成員會(huì)被繼承么?

  會(huì),但是不能被訪(fǎng)問(wèn)。所以看上去他們似乎是不能被繼承的,但實(shí)際上確實(shí)被繼承了。

  請(qǐng)描述一下修飾符protected internal。

  在同一個(gè)Assembly中,他的訪(fǎng)問(wèn)級(jí)別和public一樣,而跨Assembly訪(fǎng)問(wèn)時(shí),他的訪(fǎng)問(wèn)級(jí)別同protected一樣。即protected的范圍 + internal的范圍。

  C#提供一個(gè)默認(rèn)的無(wú)參數(shù)構(gòu)造函數(shù),當(dāng)我實(shí)現(xiàn)了另外一個(gè)有一個(gè)參數(shù)的構(gòu)造函數(shù)時(shí)候,還想保留這個(gè)無(wú)參數(shù)的構(gòu)造函數(shù)。這樣我應(yīng)該寫(xiě)幾個(gè)構(gòu)造函數(shù)?

  兩個(gè),一旦你實(shí)現(xiàn)了一個(gè)構(gòu)造函數(shù),C#就不會(huì)再提供默認(rèn)的構(gòu)造函數(shù)了,所以需要手動(dòng)實(shí)現(xiàn)那個(gè)無(wú)參數(shù)構(gòu)造函數(shù)。

  C#中所有對(duì)象共同的基類(lèi)是什么?

  System.Object.

  重載和覆寫(xiě)有什么區(qū)別?

  重載提供了對(duì)一個(gè)方法簽名的不同參數(shù)調(diào)用的實(shí)現(xiàn)。覆寫(xiě)提供了子類(lèi)中改變父類(lèi)方法行為的實(shí)現(xiàn)。

  在方法定義中,virtual有什么含意?

  當(dāng)這個(gè)類(lèi)中包含抽象方法時(shí),或是該類(lèi)并沒(méi)有完全實(shí)現(xiàn)父類(lèi)的抽象方法時(shí)。

  接口(interface)是什么?

  只含有共有抽象方法(public abstract method)的類(lèi)。這些方法必須在子類(lèi)中被實(shí)現(xiàn)。

  為什么不能指定接口中方法的修飾符?

  接口中的方法用來(lái)定義對(duì)象之間通信的契約,指定接口中的方法為私有或保護(hù)沒(méi)有意義。他們默認(rèn)為公有方法。

  可以繼承多個(gè)接口么?

  當(dāng)然。

  那么如果這些接口中有重復(fù)的方法名稱(chēng)呢?

  這種情況中你可以決定如何實(shí)現(xiàn)。當(dāng)然需要特別得小心。但是在編譯環(huán)節(jié)是沒(méi)有問(wèn)題的。

  接口和抽象類(lèi)的區(qū)別是什么?

  接口中所有方法必須是抽象的,并且不能指定方法的訪(fǎng)問(wèn)修飾符。抽象類(lèi)中可以有方法的實(shí)現(xiàn),也可以指定方法的訪(fǎng)問(wèn)修飾符。

  如何區(qū)別重載方法?

  不同的參數(shù)類(lèi)型,不同的參數(shù)個(gè)數(shù),不同的參數(shù)順序。

  const和readonly有什么區(qū)別?

  const可以用于局部常量,而readonly,實(shí)際是類(lèi)的initonly字段,顯然不能是局部的。

  System.String 和System.StringBuilder有什么區(qū)別?

  System.String是不可變的字符串。System.StringBuilder存放了一個(gè)可變的字符串,并提供一些對(duì)這個(gè)字符串修改的方法。