1,重载和重写的区别
所处位置不同: 重载在同类中,重写在父子类中
定义的方式不同:重载方法名相同,参数列表不同,重写方法名和参数都相同
调用方式不用:重载使用相同对象以不同参数调用,重写用不同对象以相同参数调用
多态时机不同:重载是编译时多态 重写是运行时多态
2,面向对象的三大特点
封装 继承 多态
封装:封装是将数据和行为相结合,通过行为约束代码修改数据的程度,增强数据的安全性,属性是c#封装实现的最好的体现.
继承:提高代码重用度,增强软件可维护性的重要手段,符合开闭原则.
开闭原则:软件实现应该对扩展开放,对修改关闭,其含义是说一个软件实体应该通过扩展来实现变化,而不是通过修改已有的代码来实现变化的(https://blog.csdn.net/hfreeman2008/article/details/52344022)
多态性:多态性是指同名的方法在不同环境下,自适应的的反映出不同的表现,是方法动态展示的重要手段.
3,简述值类型和引用类型的区别
值类型存储在内存栈中,引用类型数据存储在内存堆中,而内存单元中存放的是堆中存放的地址
值类型存取快,引用类型存取慢
值类型表示实际数据,引用类型表示指向存储在内存堆中的数据的指针和引用
栈的内存是自动释放的,堆内存是.Net中会由GC来自动释放的
值类型继承自System.ValueType,引用类型继承自System.Object.
4,简述private,public,protected,internal的区别
public:对任何类和成员都公开,无限制访问
private:仅对该类公开
protected:对该类和其子类公开
internal:只能在包含该类的程序集中访问该类
6,简述ArrayList和List<int>的主要区别
ArrayList:不带泛型 数据类型丢失
List<T>带泛型 数据类型不会丢失
ArrayList需要装箱拆箱List<T>不需要
7,请简述GC产生的原因,并描述如何避免
GC:为了避免内存溢出而产生回收机制
避免:减少new产生对象的次数 , 使用公用的对象(静态成员),将string改为stringbuilder
8, 请描述Interface与抽象类之间的不同
interface接口不是类,不能实例化 抽象类可以间接实例化
接口是完全抽象,抽象类为部分抽象
接口可以多继承,抽象类是单继承
9, foreach为只读遍历 ,遍历过程中不能修改
Sealed用在类的声明的时候其他类不能继承此类
Sealed用在函数的声明的时候其他类不能重写此方法
转载自原文链接, 如需删除请联系管理员。
原文链接:面试复习 一,转载请注明来源!