-
傳入某個屬性的set方法的隱含參數的名稱是什麼?
value,它的型別和屬性所聲名的型別相同。
如何在C#中實現繼承?
在類別名稱後面加上一個冒號,再加上基底類別的名稱。
C#支持多重繼承麼?
不支援。可以用接口來實現。
被protected修飾的屬性/方法在何處可以存取?
在繼承或間接繼承與這個類別的子類別中可以存取。
私有成員會被繼承麼?
會,但是不能被訪問。所以看上去他們似乎是不能被繼承的,但實際上確實被繼承了。 ( 在我看來, 子類別繼承父類別的一切。 <Thinking in JAVA>中說到, 子類別物件擁有父類別物件的完整拷貝. 實例化一個類別是從最頂級的超類別開始實例化的, 是一層一層的包裹結構. private限制訪問方式只能在類的內部, 這僅僅是一個訪問控制, 實際上子類對象擁有父類對象的一切.)
請描述修飾符protected internal。
被protected internal修飾的屬性/方法只能在它的在同一個程序集(Assembly)中的子類別被存取。
C#提供一個預設的無參數建構函數,當我實作了另一個有一個參數的建構子時候,我還想保留這個無參數的建構子。這樣我該寫幾個構造函數?
兩個,一旦你實作了一個建構函數,C#就不會再提供預設的建構函數了,所以需要手動實作那個無參數建構函數。
C#中所有物件共同的基底類別是什麼?
System.Object.
重載和覆寫有什麼差別?
重載提供了對一個方法簽章的不同參數呼叫的實作。覆寫提供了子類別中改變父類別方法行為的實作。
在方法定義中,virtual有什麼含意?
被virtual修飾的方法可以被子類覆寫。
能夠將非靜態的方法覆寫成靜態方法麼?
不能,覆寫方法的簽名必須與被覆寫方法的簽名保持一致,除了將virtual改為override。
可以覆寫私有的虛方法麼?
不可以,甚至在子類別中無法存取父類別中的私有方法。
能夠阻止某一個類別被其他類別繼承麼?
可以,使用關鍵字sealed。
能夠實作允許某個類別被繼承,但不允許其中的某個方法被覆寫麼?
可以,標記這個類別為public,並標記這個方法為sealed。
什麼是抽象類別(abstract class)?
一種不可以被實例化的類別。抽象類別中一般含有抽象方法,當然也可有具體實作。繼承類別只有在實作過所有抽象類別的抽象方法後才能被實例化。
何時必須聲明一個類別為抽象類別?
當這個類別中包含抽象方法時,或是該類別並沒有完全實作父類別的抽象方法時。
介面(interface)是什麼?
只含有共有抽象方法(public abstract method)的類別。這些方法必須在子類別中被實作。
為什麼不能指定介面中方法的修飾符?
介面中的方法用來定義物件之間通訊的契約,指定介面中的方法為私有或保護沒有意義。他們預設為公有方法。
可以繼承多個介面麼?
當然。
那麼如果這些介面中有重複的方法名稱呢?
在這種情況下你可以決定如何實現。當然需要特別得小心。但是在編譯環節是沒有問題的。
介面和抽象類別的差別是什麼?
介面中所有方法必須是抽象的,並且不能指定方法的存取修飾符。抽象類別中可以有方法的實現,也可以指定方法的存取修飾符。
如何區別重載方法?
不同的參數類型,不同的參數個數,不同的參數順序。
const和readonly有什麼差別?
const關鍵字用來宣告編譯時常數,readonly用來宣告執行時常數。
System.String 和System.StringBuilder有什麼不同?
System.String是不可變的字串。 System.StringBuilder存放了一個可變的字串,並提供一些對這個字串修改的方法。
本文出自CSDN博客,轉載請標示出處: http://blog.csdn.net/thy822/archive/2009/12/23/5060689.aspx
-