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

C#中的接口和类有什么异同?

不同点

  • 不能直接实例化接口。
  • 接口不包含方法的实现。
  • 接口可以多继承,类只能单继承。
  • 类定义可在不同的源文件之间进行拆分。

相同点

  • 接口、类和结构都可以从多个接口继承。
  • 接口类似于抽象基类:继承接口的任何非抽象类型都必须实现接口的所有成员。
  • 接口和类都可以包含事件、索引器、方法和属性。

什么是接口?
接口只能定义方法(只能定义行为,不能定义实现也就是字段),因为事件、索引器、属性本质上都是方法,所以接口中也可以定义事件、索引器、属性。


abstract class(抽象类)和 interface(接口)有什么区别?

相同点

  • 都不能被直接实例化,都可以通过继承实现其抽象方法。

不同点

  • 接口支持多继承;抽象类不能实现多继承。
  • 接口只能定义行为;抽象类既可以定义行为,还可能提供实现。
  • 接口只包含方法(Method)、属性(Property)、索引器(Index)、事件(Event)的签名,但不能定义字段和包含实现的方法。
  • 抽象类可以定义字段、属性、包含有实现的方法。
  • 接口可以作用于值类型(Struct)和引用类型(Class);抽象类只能作用于引用类型。

请叙述属性与索引器的区别。

  • 索引器以函数签名方式this来标识,而属性采用名称来标识,名称可以任意
  • 索引器可以重载,而属性不能重载。
  • 索引器不能用static来进行声明,而属性可以。索引器永远属于实例成员,因此不能声明为static

什么是索引器?
是一种特殊的类成员,它能够让对象以类似数组的方式来存取,使程序看起来更为直观,更容易编写。


C#支持多重继承么?

  • 类之间不支持,接口之间支持。类对接口叫做实现,不叫继承。
    (类是爹、接口是能力,能有多个能力,但不能有多个爹。)

C#中所有对象共同的基类是什么?

  • System.Object

你可能感兴趣的:(2018年9月26日.NET笔试面试题)