继承与多态的习题

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

一:选择题

1. 下面有关析构函数的说法中,不正确的是( )

A.析构函数中不可包含Return语句

B.一个类中只能有一个析构函数

C.用户可定义有参析构函数

D.析构函数在对象被撤销时,被自动调用

2.派生类不可以访问基类的( )

A.Public成员B.Private成员

C.Protected成员D.Protected internel成员

3.有关sealed修饰符,描述正确的是( )

A.密封类可以被继承

B.abstract修饰符可以和sealed修饰符一起使用

C.密封类不能实例化

D.使用sealed修饰符可保证此类不能被派生

4.若想从派生类中访问基类的成员,可以使用( )

A.this关键字B.me关键字

C.base关键字D.override关键字

5.下面有关派生类的描述中,不正确的是( )

A.派生类可以继承基类的构造函数

B.派生类可以隐藏和重载基类的成员

C.派生类不能访问基类的私有成员

D.派生类只能有一个直接基类

6.C#中,继承具有( ),即A类派生B类,B类又派生C类,则C类会继承B类中的成员和A类中的成员。

A.传递性B.多态性C.单继承D.多继承

7.下面有关静态方法的描述中,错误的是( )

A.静态方法属于类,不属于实例

B.静态方法可以直接用类名调用

C.静态方法中,可以定义非静态的局部变量

D.静态方法中,可以访问实例方法

8.下面关于运算符重载的描述中,错误的是( )

A.重载的运算符仍然保持其原来的操作数个数、优先级和结合性不变

B.可以重载双目运算符,不可以重载单目运算符

C.运算符重载函数必须是public的

D.运算符重载函数必须是static的

9.下面对派生类和基类的关系的描述中,不正确的是( )

A.派生类的方法可以和基类的方法同名

B.派生类是对基类的进一步扩充

C.派生类也可作另一个派生类的基类

D.派生类继承基类的公有、保护和私有成员

10.下面关于虚方法的描述中,正确的是()

A.虚方法可以实现静态联编

B.在一个程序中,不能有同名的虚方法

C.虚方法必须是类的静态成员

D.在派生类中重写虚方法,必须加上override修饰符

二、判断:

class A

{

private int x;

public A(int i)

{

x = i;

}

}

class B : A

{

private int y;

public B()

{

y = 0;

}

public B(int i):base(i)

{

y = i;

}

public B(int i, int j) : base(i)

{

y = j;

}

}

三:程序填充:

1. 以下程序的输出结果是:

Base class…..

Derived class…

请在空白处填入适当内客,把程序补充完整。

class Baseclass

{

public void Print() {Console.WriteLine(“Base class…”); } }

class Derivedclass:Baseclass

{ new public void Print()

{ (1);

(2) }}

class Test

{ static void Main()

{ Derivedclass d=new Derivedclass();

d.Print();}}

2. public class People

{ public static string Name;

public int Age;

public People(string Name,int age)

{ (1) .Name=Name;

(1) .Age =age;

}

public static void SayHello()

{Console. (2) ("For you always"); }

}

class Test

{

static void (3) ( )

{ People p= (4) People("Andy",30);

Console.Write("Name:{0};Age:{1}", (5) .Name, (6) .Age.ToString());

(7) .SayHello();

Console.ReadLine ();

}

}

四、看程序写结果

class A

{

public A()

{

PrintFields();

}

public virtual void PrintFields() { }

}

class B:A

{

int x=1;

int y;

public B( )

{

y=-1;

}

public override void PrintFields()

{

Console.WriteLine("x={0},y={1}",x,y);

}

}

class Program

{

相关文档
最新文档