C#面试关键点:封装、继承、多态与抽象类解析

需积分: 10 1 下载量 162 浏览量 更新于2024-07-31 收藏 134KB DOCX 举报
"C#面试习题大全,涵盖了面向对象的三大特性、抽象方法与抽象类、多态性等核心概念,适合新手学习和面试准备。" C#是一种面向对象的编程语言,其基础构建块是类,而面向对象的三个重要特性——封装、继承和多态,是理解C#编程的关键。 1. 封装:封装是对象和类概念的主要特性,它隐藏了对象的内部细节,只对外提供公共接口进行交互。在C#中,我们可以通过访问修饰符(如public、private、protected)来控制类成员的可见性,以实现数据的保护。例如,将成员声明为private,意味着只有类内部可以访问;而声明为protected,则允许子类访问。 2. 继承:继承允许一个类(子类)从另一个类(父类)继承属性和行为,从而实现代码的重用。通过继承,子类可以扩展或修改父类的功能,而无需从头开始编写代码。在C#中,如果一个类包含抽象方法(无方法体的方法,用abstract关键字修饰),那么该类也必须声明为抽象类(用abstract关键字修饰)。 3. 多态性:多态是指同一种行为可以有不同的表现形式,或者说是相同的接口可以有不同的实现。在C#中,多态主要体现在两个方面:一是子类对象可以赋值给父类对象,二是接口实现。通过多态,我们可以编写更通用的代码,提高代码的灵活性。例如,如果一个方法接受一个父类类型的参数,那么在实际运行时,传入任何子类的对象,方法都能够正确地调用子类的重写方法。 面试中常见的C#问题还包括对字符串的理解: 1. `String str = new String("a")` 和 `String str = "a"` 的区别:两者创建字符串的方式不同。第一种方式创建了一个新的String对象,即使原始字符串"a"已经存在于常量池中,也会生成一个新的对象。第二种方式,如果常量池中已存在"a",则不会创建新对象,而是直接引用同一个字符串实例。这意味着多个相同内容的字符串字面量会共享同一个对象。 2. 判断字符串变量`s`是否为空或null:在C#中,可以使用`string.IsNullOrEmpty(s)`方法来检查字符串`s`是否为空或null。如果`s`既不是空字符串也不是null,这个方法将返回`false`,否则返回`true`。 以上内容只是C#面试习题的一部分,全面准备C#面试还需要深入学习异常处理、泛型、集合、委托、事件、Lambda表达式、异步编程等更多主题。在面试中,理解并能灵活应用这些知识将对求职者大有裨益。