.net必问的面试题系列之面向对象

上个月离职了,这几天整理了一些常见的面试题,整理成一个系列给你们分享一下,机会是给有准备的人,面试造火箭,工做拧螺丝,不慌,共勉。 1.net必问的面试题系列之基本概念和语法 2.net必问的面试题系列之面向对象 3.net必问的面试题系列之设计模式 4.net必问的面试题系列之集合、异常、泛型 5.net必问的面试题系列之简单算法 6.net必问的面试题系列之数据库 7.net必问的面试题系列之web前端 .net打杂工程师的面试感想和总结 ####问题目录 1.一般采用的访问修饰符有哪五种 2.多态的理解 3.什么是构造函数 4.重写和重载的区别 5.class和struct的异同 6.构造函数是否能被重写? 7.简述一下面向对象的三大特性 8.抽象类和接口有什么区别? 9.类的执行顺序 10.接口是否可继承接口?抽象类是否可实现(implements)接口?抽象类是否可继承实现类(concrete class)? 11.继承最大的好处? 12.请说说引用和对象? 13.什么是匿名类,有什么好处 14.有哪些引用类型,有哪些值类型,有什么区别 15.C#中有没有静态构造函数,若是有是作什么用的? 16.怎样理解静态变量?静态成员和非静态成员的区别? 17.在项目中为何使用接口?接口的好处是什么?什么是面向接口开发? 18.属性能在接口中声明吗? 19.何时用重载?何时用重写? 20.静态方法能够访问非静态变量吗?若是不能够为何?html

1.一般采用的访问修饰符有哪五种

public:公开,访问无限制 internal:本项目内能够访问 internal protected:本项目的父子类能够访问 protected:子类能够访问 private:受保护的,只能在奔类中使用,对外彻底封闭前端

2.多态的理解

解释:同一操做做用于不一样的对象,实现不一样的结果。 做用:加强代码的灵活性,重用性,可读性 实现:经过派生类,覆写基类的虚方法、重写基类的override方法。web

3.什么是构造函数

概念:构造函数的方法名与类型相同、没有返回类型 做用:完成对类的对象初始化 建立一个类的新对象时,系统会自动调用该构造函数初始化新对象, 若是没有写定义,那么系统会自动提供一个不带任何参数的public 构造函数面试

4.重写和重载的区别

重写方法:关键字用override修饰,派生类重写基类的方法,方法命名、返回类型,参数必须相同, 重载方法:方法名必须相同,参数列表必须不相同,返回类型能够不相同。 做用:重写主要是实现面向对象的多态性、重载主要是实现实例化不一样的对象算法

5.class和struct的异同?

相同点: 1.均可以实现接口 不一样点: 1.class是引用类型,struct是值类型 2.class容许继承、被继承,struct不容许,只能继承接口 3.class能够初始化变量,struct不能够 4.class能够有无参的构造函数,struct不能够,必须是有参的构造函数,并且在有参的构造函数必须初始化全部成员 使用场景: 1.Class比较适合大的和复杂的数据,表现抽象和多级别的对象层次时。Struct适用于做为常常使用的一些数据组合成的新类型,表示诸如点、矩形等主要用来存储数据的轻量级对象时,偏简单值。 2.Struct有性能优点,Class有面向对象的扩展优点。数据库

6.构造函数是否能被重写?

构造器Constructor不能被继承,所以不能重写,但能够被重载编程

7.简述一下面向对象的三大特性

封装、继承、多态。 封装:是经过把对象的属性的实现细节隐藏起来,仅对外提供公共的访问方法。 继承:是经过子类继承基类、继承抽象类、继承接口实现的。 多态:是经过重写基类的override 方法、重写虚方法实现的。 好处是,方便维护、易扩展。 缺点是:比面向过程性能低。设计模式

8.抽象类和接口有什么区别?

相同点:都不能直接实例化 1.抽象类用abstract修饰、接口用interface修饰 2.抽象类中的方法能够实现,也能够不实现,有抽象方法的类必定要用abstract修饰,接口中的方法不容许实现 3.抽象类只能单继承,接口支持多继承 4.抽象类有构造方法,接口不能有构造方法 5.接口只负责功能的定义,经过接口来规范类的,(有哪些功能),而抽象类即负责功能的定义有能够实现功能(实现了哪些功能)数组

9.类的执行顺序

执行顺序:父类,子类,静态块,静态字段,非静态块,非静态字段,构造器,方法微信

10.接口是否可继承接口?抽象类是否可实现(implements)接口?抽象类是否可继承实现类(concrete class)?

接口能够继承接口,抽象类能够实现接口,抽象类能够继承实现类,但前提是实现类必须有明确的构造函数。

11.继承最大的好处?

对父类成员进行重用,增长代码的可读性、灵活性。

12.请说说引用和对象?

对象和引用时分不开的,对象生成一个地址,放在堆里面,引用则指向这个地址,放在栈里面

13.什么是匿名类,有什么好处

不用定义、没有名字的类,使用一次即可丢弃。好处是简单、随意、临时的。

14.有哪些引用类型,有哪些值类型,有什么区别

引用类型:类、接口、委托、字符串、数组 值类型:整形、浮点型、结构体、枚举、bool 值类型和引用类型的区别在于,值类型的变量直接存放实际的数据,而引用类型的变量存放的则是数据的地址,即对象的引用。 默认值,值类型是0,引用类型null。

15.C#中有没有静态构造函数,若是有是作什么用的?

有. 特色: 静态构造函数既没有访问修饰符,也没有参数。 在建立第一个实例或引用任何静态成员以前,将自动调用静态构造函数来初始化类。 没法直接调用静态构造函数。在程序中,用户没法控制什么时候执行静态构造函数。 用途: 当类使用日志文件时,将使用这种构造函数向日志文件中写入项。

16.怎样理解静态变量?静态成员和非静态成员的区别?

静态变量属于类,而不属于对象;并对全部对象所享;静态成员在加类的时候就被加载。

17.在项目中为何使用接口?接口的好处是什么?什么是面向接口开发?

接口是一种约束,描述类的公共方法/公共属性,不能有任何的实现 好处是:结构清晰,类之间通讯简单易懂,扩展性好,提升复用性。 面向接口开发就是指面向抽象协议编程,实现者在实现时

#####18.属性能在接口中声明吗? 能够,不能有访问修饰符,不能初始化赋值。

#####19.何时用重载?何时用重写? 当一个类须要用不一样的实现来作同一件事情,此时应该用重写,而重载是用不一样的输入作同一件事情

20.静态方法能够访问非静态变量吗?若是不能够为何?

静态方法和非静态变量不是同一辈子命周期,静态方法属于类,非静态变量属于具体的对象,静态方法和具体的对象没有任何关联 有兴趣的能够关注一下个人微信公众号[dotNet全栈开发],分享一些编程相关的经典文章

相关文章
相关标签/搜索