面试复习 一

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用在函数的声明的时候其他类不能重写此方法

    

猜你喜欢

转载自blog.csdn.net/qq_41764460/article/details/81566313