---恢复内容开始---
《深入.NET平台和C#编程》内部测试题-笔尝尝卷错题堆集
1:
1) 以下关于序列化和反序列化的描述错误的是( C)。
a) 序列化是将东西的状态存储到特定存储介质中的过程
b) 二进制格局化器的Serialize()和Deserialize()要领可以分袂用来实现序列化和反序列化过程
解析:BinaryFormatter
c) 如果一个类可序列化,则它的子类和包罗的各成员东西也必然可序列化
问题出在了子类,如果子类压根不能进行序列化操纵,,则会抛出异常
d) 标识一个类可以序列化要使用[Serializable]
2:
下列关于虚要领(virtual)和抽象要领(abstract)的描述中错误的是( C)。
a) 虚要领必需有要领体,可以被子类重写
b) 抽象要领不允许有要领体,且必需被子类重写
c) 抽象要领必需在抽象类中,而虚要领可以在所有类中
密封类和静态类中不能书写
d) 在子类中重写抽象要领或虚要领,都需要用override关键字
注意:
1:如果一个类用Abstract修饰,那么该类就是抽象类;
2:抽象要领中可以有要领体,也可以有普通要领
3:抽象要领不能有要领体,甚至连{}都不能有,直接以分号结尾;
4:抽象类可以有结构
5:抽象类不能实例化
6:抽象类不能是密封类或者静态类的
为什么不能是静态类的:
静态类会静态存储区构建一个类的实例,而抽象类不能实例化,所以两者是相违背的
为什么不能是密封类的:
抽象类是让别人去担任 ,然后重写抽象要领
密封类不想让别人去担任,两者是相违背的
7:如果一个类担任自抽象类,必需重写抽象类的所有要领,除非子类自己也是抽象类
8:一键重写的快捷键是:Ctrl+.,或者是alt +shif +F10
9:抽象类中的抽象要领用来约束子类要领的格局的
10:抽象要领必需存在于抽象类中
4:
分析以下使用抽象类的C#代码,其最终的运行功效是(D )。
public abstract class Class1
{
public void F()
{
Console.Write("1");
}
abstract public void ABS();
}
public class Class2 : Class1
{
public override void ABS()
{
Console.Write("3");
}
public Class2()
{
Console.Write("2");
}
static void Main()
{
Class2 objB = new Class2();
objB.ABS();
}
}
//先挪用结构,然后挪用自身的ABS要领()
a) 12
b) 21
c) 13
d) 23
5:
下列代码的运行功效是( A)。
class Test
{
Public void F()
{
Console.Write("A");
}
}
class B : Test
{
Public new void F()
{
Console.Write("B");
}
Public void Say()
{
}
static void Main()
{
Test objA = new B();
objA.F();
}
}
注意:这里不是多态,所以用父类变量生存子类东西,取的是父类的要领。哪怕父类要领使用Virtual关键字,子类没有Override就不会实现多态。
以后我们碰到通过父类变量生存在东西的标题问题时,应该具备以下理解能力:
01.当new一个子类的时候,可以当作在子类东西中已经完全包罗一个父类东西,所以我们可以在子类中通过this点出来父类的非私有成员。
02.父类变量只能挪用到父类的要领,而不能挪用子类的要领,即使该父类变量存储是子类。
措施员;编码能力 打字能力。
打字员:打字能力
a) A
b) B
c) BA
d) AB
6:
在开发C#措施过程中,会大量地使用类和东西,其使用要领不包孕( BC)。
a) 将类实例化为东西
b) 将东西实例化为类
c) 通过类访谒非静态属性或要领
d) 通过东西访谒非静态属性或要领
7: