8.2、下列关于接口的说法中,( A )是错误的。
A、一个类可以有多个基类和多个接口
B、抽象类和接口都不能实例化对象
C、抽象类可以定义成员,接口也可以。
D、类不可以多重继承,而接口可以。
8.3、下列代码的输出结果是 ( C ) 。
class Base
{ public void Hello()
{ Console.Write(“Hello in Base!”)
}
}
Class Derived:Base
{ public new void Hello()
{Console.Write(“Hello in Derived!”)
}
}
Base x=new Derived();
x.Hello();
A、Hello in Base! B、Hello in Base! Hello in Derived!
C、Hello in Derived! D、Hello in Derived! Hello in Base!
8.4 在C#的派生类中对基类的虚函数进行重写,要求在派生类中使用__A___关键字
A、 override B、new C、static D、virtual
8.5 接口声明的关键字是_C__
A、delegate B、delete C、interface D、public
8.7、怎样定义基类的虚方法,并在派生类中重写基类虚方法。
答:在基类中,需要使用关键字符virtual将某个方法显示声明为虚方法。然后再在派生类中使用override显示申明一个方法以重写某个虚方法。方法重写时,必须注意派生类中的方法应该与基类 中被重写的方法有相同的方法名、返回值类型、参数列和访问权限。
8.8、抽象方法与虚方法有何异同?
答:(1)当方法前使用了irtual关键字时,他就成为虚方法。虚方法是多态的基础,在派生类中能改变方法的执行,改变基类中虚方法的过程叫重写或覆盖。
(2)当方法前使用了abstract关键字时,它就成为抽象方法。抽象方法是一种不完全的方法,它只有方法头没有具体的方法体。抽象方法是一种虚拟方法(但不能用关键字符virtual声明),是隐含的虚方法,而且必须被派生类实现重写。

