目录
4、 抽象类和接口的区别?接口支持多继承;抽象类不能实现多继承。
7、 C#中,哪些类型是值类型?哪些类型是引用类型?(数据类型)
10、 重写和重载的区别?方法的override和overload有什么区别?
1、 class和struct的区别?
Class可以被实例化,属于引用类型
Struct属于值类型
2、 C#中类成员的访问修饰符有哪些?
private : 私有成员, 在类的内部才可以访问。
protected : 保护成员,该类内部和继承类中可以访问。
public : 公共成员,完全公开,没有访问限制。
internal: 在同一程序集内可以访问。
3、 面向对象的三大特征是什么?/面向过程和面向对象的区别
封装,继承,多态;
面向过程和面向对象都是解决问题的逻辑方法,分析问题既可以用面向对象的方法 来思考,也可以用面向过程方法来解决,但两者还是有一定区别
面向过程:是分析问题并解决问题所需要的步骤,强调是解决问题的步骤。可以先定义多个函数,在使用的时候逐步调用函数即可
面向对象:是把问题分解成多个对象,强调的是解决问题的行为表现
4、 抽象类和接口的区别?接口支持多继承;抽象类不能实现多继承。
接口只能定义抽象规则;抽象类既可以定义规则,还可能提供已实现的成员。
接口是一组行为规范;抽象类是一个不完全的类
接口可以用于支持回调;抽象类不能实现回调,因为继承不支持
接口只包含方法、属性、索引器、事件的签名,但不能定义字段和包含实现的方法;抽象类可以定义字段、属性、包含有实现的方法
接口可以作用于值类型和引用类型;抽象类只能作用于引用类型。
5、 接口可以包含哪些成员?
接口可以包含属性、方法、索引指示器和事件,但不能包含常量、域、操作符、构造函数和析构
函数,而且也不能包含任何静态成员
6、 什么是装箱和拆箱?
从值类型转换到引用类型装箱。从引用类型转换到值类型拆箱
7、 C#中,哪些类型是值类型?哪些类型是引用类型?(数据类型)
C#的引用类型包括:数组、委托、接口、object、字符串、用户定义的类。
C#的值类型包括:数值类型、结构体、bool型、枚举、可空类型、用户定义的结构体。
8、 值类型和引用类型的区别?
值类型:占用空间固定、保存与复制的是值本身、使用typeof检测数据的类型、基本类型数据是值类型
引用类型:占用空间不固定、保存与复制的是指向对象的一个指针、使用instanceof检测数据类型、使用new()方法构造出的对象是引用型
9、 C#中的基本数据类型有哪些?值类型:
有符号整数(由小到大):sbyte、short、int、long 无符号整数(由小到大):byte、ushort、uint、ulong 浮点型:float、double、decimal 布尔型:bool
字符型:char 引用类型:
string、object
10、 重写和重载的区别?方法的override和overload有什么区别?
重载:同类同名不同参,属于编译时多态。
重载:是在一个类中定义多个方法名相同的方法,表示一个行为有多种实现方式重写:
同名同参不同类,属于运行时多态。重写是用子类的方法来重写父类的方法,表示相同的方法在父类和子类中具有差异性