2018年9月28日.NET笔试面试题

2018-09-28  本文已影响0人  墨弄笔

接口和抽象类该如何取舍

解答

接口和抽象类非常相似,两者都无法实例化,并且未实现部分都由派生类实现。

接口与抽象类的主要区别有以下几点

  1. 抽象类只能派生类,而接口可以派生类和结构。
  2. 抽象类的派生类也可以是抽象类,即抽象成员在派生类中不一定被完全实现。而接口要求其派生类或结构必须完全实现其成员。
  3. 抽象类可以包含己经实现的成员,可以包含字段,而接口只包含未实现的成员,不能包含字段。并且接口及所含成员必须为public访问级别。
  4. 类只能继承一个抽象类,但可以继承(实现)多个接口。

在具体的程序设计中,抽象类和接口的取舍应视程序的需要而定。

说明:抽象类的应用非常类似于网页制作中的CSS外部样式文件、大量风格相同的页面可以共用这个CSS文件,并且在页面中可以对部分CSS属性进行改写。

分析

说明:抽象类的成员不能使用virtaulstatic修饰。


简述C#变量的隐式类型声明

解答

分析

如,JavaScript这些弱类型语言声明一个变量后,允许在作用域内存储不同数据类型的值。而C#是强类型语言,即便使用了var关键字同样没有质的变化,只是当编译器遇到var时,将根据初始值推测出相应的数据类型设置为该变量的类型,如果在作用域内给变量赋予有别于这个数据类型的新值,则会产生编译错误。


简要地谈谈分部类型和分部方法

解答

分析

虽然分部方法的概念和分部类型的概念有很多相似之处,但有其特殊性,不可任意定义,须遵从以下限制

  1. 分部方法可以是静态方法,但必须是隐式的私有方法,并且是无返回值的方法。
    说明:由于分部方法是私有方法,所以无法使用virtual修饰符,即不能成为虚方法。)
  2. 分部方法只能将方法分为两部分,即声明部分和实现部分。
  3. 分部方法只用于分部类型,方法的声明部分和实现部分可位于分部类型的不同部分。
  4. 分部方法可以有ref参数,但不能有out参数。
  5. 不允许将委托转换为分部方法。
上一篇 下一篇

猜你喜欢

热点阅读