【正文】
set { n = value。控制臺應(yīng)用程序項目b的執(zhí)行結(jié)果public class Employee //普通職工類{ private double bsalary= 1000。 ()。 ()。 Teacher t1 = new Teacher()。 } new public void disp() { ()。 ( 職稱:)。 ( 成績:{0},degree)。 ( 成績:)。 //班號 private int degree。 name = ()。 //編號 private string name。學(xué)生類Student有編號、姓名、班號和成績等字段,教師類有編號、姓名、職稱和部門等字段。先創(chuàng)建基類的構(gòu)造函數(shù),在創(chuàng)建自己的構(gòu)造函數(shù)3.怎樣定義基類虛方法,并在派生類中重寫基類虛方法?virtual 方法名([參數(shù)列表]) { 語句序列 }override 方法名([參數(shù)列表]) { 語句序列 }4.抽象方法和虛方法有什么異同?抽象方法是只有定義、沒有實際方法體的函數(shù),它只能在抽象函數(shù)中出現(xiàn),并且在子類中必須重寫;虛方法則有自己的函數(shù)體,已經(jīng)提供了函數(shù)實現(xiàn),但是允許在子類中重寫或覆蓋?!睉?yīng)改為“()。 ()。 }” 應(yīng)改為“int h(int x);”,因為不能在接口聲明的函數(shù)中編寫實現(xiàn)代碼;應(yīng)該在類A中添加函數(shù)“void g(int x)。 } }class A:I { public void f(int x){ } public int h(int x){ } }答:“int x。3. interface I { int x。 } }整數(shù)棧出棧次序:2 3 1字符串棧出棧次序:Simth John Mary三.改錯題(說明:下列程序中部分下劃線的代碼有錯誤,請將有錯誤的部分改正過來,并說明原因)1. class A { public A(int x){ } } class B:A { public B(int x){ } }答:“public B(int x){ }”應(yīng)改為“public B(int x):base(x){ }”。 (字符串棧出棧次序:)。 Stackstring s1 = new Stackstring()。 while (!()) //棧不空時出棧元素 { (ref e)。 //定義整數(shù)棧 (1)。 top。 data[top] = e。 top = 1。 data = new T[maxsize]??疾祛惖膶崿F(xiàn)與泛型class StackT //聲明棧泛型類 { int maxsize。 ({0} , ())。 } } class B : A, Ia //類B從基類A和接口繼承 { double x。}}Hello in Base!Hello in Derived!12. 閱讀下列程序,程序的輸出結(jié)果是【 】。 ()。 }}class Program{ public static void Main(){ Base b=new Base()。}}Hello in Base!Hello in Derived!Hello in Base!Hello in Base!11. 閱讀下列程序,程序的輸出結(jié)果是【 】。 ()。 IA x。 }class Base:IA { public void Hello() { (Hello in Base!)。 Console .WriteLine(你的年齡是:{0},)。 age = value。考察類的繼承public class Person{ private int age = 0。 else (非機動車)。 public int Speed { get { return speed。 ()。 A a = b。 } public virtual void F2() { (BB )。 ()。 } public override void MethodB(){ ()。 } }m=3,n=66. 分析下列程序的運行結(jié)果是【 】。 }} class Program { public static void Main() { B b = new B(3, 6)。public B(int y, int z){ x=y。 ()。4. 下列程序的運行結(jié)果是【AB 】。A) 泛型是通過參數(shù)化類型來實現(xiàn)在同一份代碼上操作多種數(shù)據(jù)類型 B) 泛型編程是一種編程范式,其特點是參數(shù)化類型, C) 泛型類型和普通類型的區(qū)別在于泛型類型與一組類型參數(shù)或類型變量關(guān)聯(lián) D) 以上都不對二.填空題1.在C中有兩種多態(tài)性:編譯時的多態(tài)性和運行時的多態(tài)性。 B) Listint f=new List ()。 void Show()。 = 100。 }class MyClass:BaseClass{ public new int i。 }B) abstract class MyClass { public virtual abstract int getCount()。A) 方法 B) 屬性 C) 事件 D) 常量29.下列敘述中,正確的是【 】。A) 派生類可以繼承基類的構(gòu)造函數(shù) B) 派生類可以隱藏和重載基類的成員C) 派生類不能訪問基類的私有成員 D) 派生類只能有一個直接基類25.C中的多態(tài)不能通過【 】實現(xiàn)。A) 不能改變方法的參數(shù)類型、個數(shù)和返回值 B) 可以改變方法的參數(shù)類型、個數(shù)和返回值 C) 可以改變方法的返回值D) 可以改變方法的參數(shù)類型和個數(shù)21.下面有關(guān)繼承的說法中,正確的是【 】。A) Hello in Base! B) Hello in Base! Hello in Derived!C) Hello in Derived! D) Hello in Derived!Hello in Base!17.關(guān)于繼承,下列說法正確的是【 】。 } }class Derived: Base{ public new void Hello() { (“Hello in Derived!”)。A) 類可以繼承而接口不可以 B) 類不可以繼承而接口可以C) 類可以多繼承而接口不可以 D) 類不可以多繼承而接口可以14.下列方法定義中,【 】是抽象方法。A) 虛方法能在程序執(zhí)行時動態(tài)確定要調(diào)用的方法,因此比非虛方法更靈活B) 在定義虛方法時,基類和派生類的方法定義語句中都要帶上virtual修飾符C) 在重寫基類的虛方法時,為消除隱藏基類成員的警告,需要帶上new修飾符D) 在重寫基類的虛方法時,需要同時帶上virtual和override修飾符10.在C中,以下關(guān)于抽象類的敘述中錯誤的是【 】。D) 多態(tài)和重載是兩個完全不同的概念,前者是通過定義虛方法和重寫虛方法來實現(xiàn),后者是通過對同一函數(shù)名編寫多個不同的實現(xiàn)代碼來實現(xiàn)。A) 類B中的成員可以訪問類A中的公有成員 B) 類B中的成員可以訪問類A中的保護成員C) 類B中的成員可以訪問類A中的私有成員 D) 類B中的成員可以訪問類A中的靜態(tài)成員7.關(guān)于多態(tài),下列說法正確的是【 】。A) new B) super C) this D) base3.在定義類時,若希望類的某個方法能夠在派生類中進一步改進,以滿足派生類的不同需要,則應(yīng)將該方法聲明為【 】。A) 可以繼承多個類 B) 可以實現(xiàn)多個接口C) 在一個程序中只能有一個子類 D) 只能實現(xiàn)一個接口2.【 】關(guān)鍵字用于在C中從派生類中訪問基類的成員。A) static B) new C) override D) virtual6.假設(shè)類B繼承了類A,下列說法錯誤的是【 】。C) 編譯時多態(tài)是在程序運行時才能確定要調(diào)用成員方法的哪個版本,而運行時多態(tài)在編譯時就能確定要調(diào)用成員方法的哪個版本。9.下列關(guān)于虛方法的描述中,正確的是【 】。A) 在抽象類中,所有的方法都是抽象方法B) 繼承自抽象類的子類必須實現(xiàn)其父類(抽象類)中的所有抽象方法C) 在接口的定義中可以有方法實現(xiàn),在抽象類的定義中不能有方法實現(xiàn)D) 一個類可以從多個接口繼承,也可以從多個抽象類繼承13.以下類和接口的區(qū)別中正確的是【 】。16.已知類Base、Derived的定義如下:class Base{ public void Hello() { (“Hello in Base!”)。 ()。A) 只能存在于抽象類中 B) 可以在任何類中 C) 只能在接口中 D) 只能在密封類中20.重寫一個基類的虛方法時,應(yīng)與原虛方法的方法名相同,并且【 】。A) this關(guān)鍵字 B) me關(guān)鍵字 C) base關(guān)鍵字 D) override關(guān)鍵字24.下面有關(guān)派生類的描述中,不正確的是【 】。A) 接口只是由方法、屬性、索引器或事件組成的框架,并沒有描述任何對象的實例代碼 B) 接口的所有成員都被自動定義為公有的,不可使用訪問修飾符來定義接口成員 C) 類可以通過在類型定義語句中包括冒號和接口名來表明它正在實現(xiàn)接口 D) 一個類只能實現(xiàn)一個接口28.接口可以包含一個或多個成員,以下選項中【 】不能包含在接口中。A) abstract class MyClass { public abstract int getCount()。 }32. 分析下列程序中類MyClass的定義class BaseClass{ public int i。BaseClass x = y。interface