2022年NET研发人员面试题汇总.pdf
2022年 N E!研 发 人 员 面 试 题 整 理 汇 总 试 题 11、简 述 javascript 中 的“=、=、=的 区 别?=赋 值=比 较 是 否 一 般 相 等 3=3 会 做 类 型 的 隐 式 转 换,true=比 较 是 否 严 格 相 等 3=3 先 比 较 类 型,再 进 行 值 比 较,false2、看 下 列 代 码 输 出 为 何?解 释 原 因 var a=null;alert(typeof a);var b;alert(typeof b);alert(c);a 为 null也 是 个 对 象,所 以 typeof(a)为 object.b 只 有 声 明 没 有 初 始 化,因 此 typeof(b)为 undefined.c 没 有 定 义,因 此 alert(c)会 出 现 error.3、编 写 javascript代 码 实 现 把 两 个 数 组 合 并,并 删 除 第 二 个 元 素。合 并 js 数 组 用 concat 方 法,array 1.concat(array2)删 除 元 素 用 splice方 法,spliced,1)函 数 原 型 splice(index,count),指 从 数 组 索 引 1处 开 始 删 除!个 元 素,即 删 除 第 二 个 元 素。4、简 述 javascript的 作 用 域 和 闭 包 js变 量 的 作 用 域 是 指:函 数 内 定 义 的 局 部 变 量 只 在 此 函 数 内 有 效,而 全 局 变 量 可 以 全 局 有 效。闭 包 的 作 用 就 在 于 能 够 改 变 局 部 变 量 的 作 用 域,将 值 保 存 下 来,但 是 如 果 使 用 不 当 会 造 成 无 法 回 收 变 量,引 起 性 能 问 题,甚 至 崩 溃。5、列 举 你 用 过 的 javascript框 架,并 简 述 它 们 的 优 缺 点 js 框 架:jQuery EasyUI、ExtJS、Bootstrap、AngularJS 等 等。jQuery EasyUI:轻 量 级 web前 端 ui开 发 框 架,尤 其 适 合 MIS系 统 的 界 面 开 发,能 够 重 用 jquery插 件。ExtJS:统 一 的 前 端 UI开 发 框 架,学 习 难 度 中 等。尤 其 适 合 MIS系 统 的 界 面 开 发,开 发 文 档 和 例 子 代 码 都 比 较 完 整。缺 点 是 大 量 的 js脚 本,降 低 了 运 行 速 度。Bootstrap:响 应 式 网 站 开 发 框 架,优 点 是 降 低 了 后 端 开 发 人 员 开 发 前 端 页 面 的 难 度,统 一 了 界 面 风 格,缺 点 是 界 面 风 格 比 较 单。AngularJS:将 java后 端 的 优 秀 特 性 引 入 到 了 js前 端,大 而 全 的 框 架。缺 点 是 学 习 曲 线 高,Angular2几 乎 重 写。6、简 述 a.Equals(b)和 a=b的 区 别?Equals方 法 比 较 内 容(值 是 否 相 等),=比 较 引 用 地 址(是 否 指 向 同 一 个 对 象)。7、ASP.NET 的 Application、Session、Cookie、ViewState 和 Cache等 变 量 的 区 别 是 什 么?Application应 用 程 序 级 别 Session会 话 级 别 用 户 跟 踪 Cookie客 户 端 存 储 少 量 信 息 ViewState保 持 ASP.NET控 件 状 态 的 机 制 Cache缓 存 8、列 举 ASP.NET MVC ActionResult的 返 回 值 有 几 种 类 型?主 要 有 View(视 图)、PartialView(部 分 视 图)、Content(内 容)、Json(Json 字 符 串)、Javascript(js 脚 本)、File(文 件)等 几 种 类 型。9、简 述 ASP.NET WebApi相 对 于 ASP.NET MVC 的 优 点?WebApi消 息 处 理 管 道 独 立 于 ASP.NET平 台,支 持 多 种 寄 宿 方 式。10、简 述 ASP.NET请 求 的 生 命 周 期?用 户 从 Web服 务 器 请 求 应 用 程 序 资 源 一 ASP.NET接 收 对 应 用 程 序 的 第 一 个 请 求 一 为 每 个 请 求 创 建 ASP.NET核 心 对 象 一 将 HttpApplication对 象 分 配 给 请 求 由 HttpApplication管 线 处 理 请 求 refer:https:/11、ORM中 的 延 迟 加 载 与 直 接 加 载 有 什 么 异 同?延 迟 加 载(Lazy Loading)只 在 真 正 需 要 进 行 数 据 操 作 的 时 候 再 进 行 加 载 数 据,可 以 减 少 不 必 要 的 开 销。12、简 述 Func T 与 Action T 的 区 别?Func T 是 有 返 回 值 的 委 托,Action T 是 没 有 返 回 值 的 委 托。13、开 启 个 异 步 线 程 的 几 种 方 式?多 线 程 编 程 时 的 注 意 事 项?APM(Asynchrocous Programming Model,比 如:BeginXXX、lAsyncResult)、EAP(Event-Based Asynchronous Pattern,比 如:DownloadContentAsync)、TPL(Task Parallel Library比 如:Task.Factory.StartNew)、async/await 线 程 饿 死、线 程 死 锁、线 程 同 步、线 程 安 全。14、简 述 Linq是 什 么,以 及 Linq的 原 理?并 编 写 个 LinqtoObject的 示 例 代 码 Linq(Language Integrated Query),其 中 Linq to Object是 对 Enumberable扩 展 方 法 的 调 用,在 执 行 时 会 转 化 为 Lambda然 后 执 行。示 例 代 码:Linq分 组 统 计 心 var result=from p in list.AsEnumerable 0group p by p.Province into gselect newg.Key,SumValue=g.Sum(p=p.Value);result.ToList().ForEach(i)=(Console.WriteLine(i.Key+i.SumValue););15、简 述 面 向 对 象 的 特 性 有 哪 些?你 是 如 何 理 解 的?继 承(inheritance)、封 装(encapsulation)、多 态(polymorphism)16、列 举 你 所 知 道 的 设 计 模 式?你 在 真 实 项 目 中 使 用 过 的 有 哪 些?有 什 么 心 得?单 例 模 式、模 板 方 法、工 厂 模 式、外 观 模 式、策 略 模 式 等。17、编 写 SQL从 A 表 中 查 出 Name字 段 重 复 三 条 以 上 的 记 录,并 编 写 SQL删 除 这 些 重 复 记 录 查 询 Name字 段 记 录 重 复 三 条 以 上 的 记 录 select name from A group by name having count(name)3删 除 重 复 记 录 电 if exists(select*from sysobjects where name=tempA)drop table tempAselect ROW_NUMBER()over(order by name)as rowid,name into tempA from Aselect*from tempA 删 除 重 复 记 录,只 保 留 rowid最 小 的 那 一 行 delete from tempAwhere name in(select name from tempA group by name havingcount(name)3)and rowid not in(select min(rowid)from tempAgroup by name having count(name)3)select*from tempA试 题 2Main函 数 是 什 么?在 程 序 中 使 用 Main函 数 有 什 么 需 要 注 意 的 地 方?Q:程 序 的 入 口 函 数!函 数 名 字 不 能 改 变;一 个 程 序 中 有 且 只 有 一 个 Main函 数。CLR是 什 么?程 序 集 是 什 么?当 运 行 一 个 程 序 集 的 时 候,CLR做 了 什 么 事 情?Q:Common Language RunTime 公 共 语 言 运 行 时。编 译 后 代 码 的 集 合。(包 括 exe和 dll)。加 载 项 目 里 所 有 的 类 到 内 存,并 找 到 其 中 的 主 函 数,并 作 为 默 认 的 启 动 函 数 调 用 执 行。值 类 型 的 默 认 值 是 什 么?(情 况 一:字 段 或 全 局 静 态 变 量;情 况 二:局 部 变 量)Q:如 果 是 全 局 变 量,并 且 没 赋 值,就 会 有 默 认 值,如:int是 0;bool 是 false;枚 举 enum;结 构 体 struct;如 果 是 局 部 变 量,就 必 须 手 动 赋 值。声 明 一 个 变 量 时 在 内 存 中 做 了 什 么 事 情?初 始 化 一 个 变 量 的 时 候 又 在 内 存 中 做 了 什 么 事 情?Q:在 栈 中 开 辟 空 间,并 将 变 量 放 入 空 间 里,默 认 值 都 是 null。初 始 化 时:如 果 是 值 类 型,则 直 接 放 入 栈 中;如 果 是 引 用 类 型,则 在 堆 中 开 辟 块 空 间,将 堆 中 对 象 的 地 址 指 针 放 入 栈 中 new关 键 字 做 的 事 情?Q:开 辟 空 间,创 建 对 象,调 用 构 造 函 数,返 回 堆 地 址。还 可 以 显 示 的 隐 藏 父 类 的 同 名 方 法。数 组 061.数 组 一 旦 创 建 后,能 不 能 修 改 数 组 的 长 度?Q:不 能。为 什 么 呢?数 组 是 引 用 类 型。它 在 创 建 时,已 经 根 据 创 建 的 长 度 在 内 存 中 开 辟 一 块 连 续 的 空 间。多 维 数 组 本 质 就 是 个 一 位 数 组,只 不 过 访 问 的 时 候 需 要 使 用 多 个 下 标 访 问 071,如 何 声 明 一 个 多 维 数 组?Q:多 维 数 组 string,strArr=new string3,3;072.如 何 获 取 多 维 数 组 的 总 长 度?Q:各 个 纬 度 元 素 的 个 数 的 乘 积交 错 数 组 081.如 何 声 明 一 个 交 错 数 组?Q:交 错 数 组:int 口 口 arr=new int 3 3;082.交 错 数 组 的 本 质 是 什 么?Q:本 质 是 个 数 组 的 数 组。简 单 的 说 这 个 数 组 的 元 素 是 一 个 数 组。面 向 对 象(一)01.为 什 么 要 有 方 法?Q:为 了 复 用。(封 装)(重 复 调 用,封 装 具 体 实 现)02.如 何 实 现 方 法 的 重 载?Q:方 法 名 相 同,但 参 数 列 表 不 同。(和 返 回 值 无 关)03.引 用 参 数(ref)和 输 出 参 数(out)的 相 同 点 与 不 同 点?Q:相 同 点:传 递 的 都 是(栈)引 用。不 同 点:out侧 重 于 输 出 参 数;ref侧 重 于 修 改;out必 须 方 法 返 回 之 前 赋 值;ref必 须 在 传 入 之 前 赋 值。04.在 什 么 情 况 下 使 用 引 用 参 数(ref)和 输 出 参 数(out)?Q:如 果 方 法 有 多 个 返 回 值,则 可 以 用 out或 者 ref。只 不 过 ref侧 重 于 修 改(即 将 值 传 进 去 修 改 后 再 拿 出 来);而。ut是 为 了 从 方 法 中 获 得 一 个 值 后 拿 到 方 法 外 使 用。05.可 变 参 数 与 普 通 数 组 参 数 的 区 别?Q:params关 键 字。特 点:个 方 法 中 只 能 有 一 个 可 变 参 数;而 且 必 须 放 在 参 数 列 表 最 后;如 果 没 有 给 可 变 参 数 赋 值,就 初 始 化 长 度 为 0;01.面 向 对 象 的 三 大 特 征 是 什 么?Q:封 装;继 承;多 态;02.类 和 对 象 的 关 系?Q:抽 象 和 具 体 的 关 系。类 是 抽 象(模 板,设 计 图 纸),对 象 是 具 体(按 照 图 纸 设 计 的 房 子)。类 是 对 对 象 的 抽 象 描 述,而 对 象 是 类 的 具 体 化。03.创 建 某 个 类 的 对 象 的 时 候,在 内 存 中 做 了 什 么 事 情?例 如 Person p=new Person();Q:开 辟 空 间,创 建 对 象,调 用 构 造 函 数。(在 内 存 的 堆 中 开 辟 空 间,创 建 Person对 象,然 后 在 内 存 的 栈 中 开 辟 个 放 个 p,然 后 将 Person对 象 在 堆 中 的 引 用 地 址 赋 值 给 对 象 p)04.属 性 存 在 的 目 的 是 什 么?Q:封 装 字 段。为 了 对 字 段 的 操 作 设 置 规 则。(本 质 是 两 个 方 法,一 个 get方 法 和 一 个 set方 法)05.访 问 修 饰 符 有 哪 些 并 分 别 每 个 访 问 修 饰 符?Q:public(公 有 的),private(只 有 本 类 可 以 访 问),internal(程 序 集 内 共 享,如 果 不 写 修 饰 符,默 认 就 是 internal),protected(本 类 和 子 类 可 以 访 问),extern(供 外 部 访 问,eg:C#提 供 接 口 给 C+访 问)06.为 什 么 要 有 构 造 函 数 呢?Q:主 要 方 便 程 序 猿 在 实 例 化 对 象 的 时 候 就 为 对 象 里 的 些 属 性 和 字 段 初 始 化 赋 值。07.什 么 是 封 装?封 装 的 目 的 是 什 么?Q:封 装 就 是 将 对 象 的 字 段、行 为 和 功 能 等“弄”到 起。封 装 的 目 的:隐 蔽 代 码 实 现/复 用/修 改 方 便 08.类 的 命 名 规 则 是 什 么?Q:类 命 名:首 字 母 大 写(帕 斯 卡 命 名)。变 量 命 名:首 字 母 小 写(骆 驼 命 名)面 向 对 象(二)01.什 么 是 类 型?Q:用 来 定 义 某 一 种 数 据 在 内 存 里 开 辟 空 间 的 大 小,还 可 以 预 置 操 作 此 种 类 型 数 据 的 相 关 方 法 02.this关 键 字 在 方 法 中 使 用 时,它 代 表 什 么?Q:this指 当 前 类 的 对 象,或 者 他 的 父 类 的 类 对 象。base只 能 指 向 父 类 的 对 象。03.值 类 型 变 量 的 初 始 化(内 存 分 配)?(两 种 情 况:是 类 的 成 员 变 量,二 是:方 法 的 局 部 变 量)Q:1、当 变 量 是 一 个 类 的 成 员 变 量 的 时 候,那 么 该 变 量 是 跟 随 累 的 对 象 存 在 于 堆 内 存。当 对 象 引 用 断 开 时,等 着 垃 圾 回 收 器 进 行 清 理 时 便 被 销 毁2、当 变 量 是 个 方 法 的 局 域 变 量 时,那 么 该 变 量 是 在 方 法 被 调 用 时,存 在 于 栈 内 存,方 法 执 行 完 毕 后 被 销 毁 04.继 承 041.继 承 的 好 处?Q:1.提 高 代 码 的 复 用;2.实 现 多 态;042.继 承 的 单 根 性 Q:一 个 类 只 能 继 承 一 个 父 类。043.继 承 的 传 递 性 Q:指 子 类 只 能 继 承 父 类 的 非 私 有 的 成 员。044.当 存 在 继 承 关 系 的 时 候,在 子 类 中 如 何 访 问 父 类 的 非 私 有 成 员?Q:通 过 base关 键 字(只 能 获 取 父 类 的)(base就 是 存 在 于 子 类 对 象 里,用 来 指 向 父 类 对 象 的 指 针)或 者 通 过 this关 键 字(可 以 获 取 父 类 的 非 私 有 的 成 员 和 本 类 的 成 员)05.什 么 是 里 氏 替 换 原 则?Q:子 类 替 换 父 类 所 在 的 位 置 06.子 类 与 父 类 对 象 之 间 的 转 换?Q:子 类 可 以 强 制 转 换 为 父 类,但 是 父 类 不 能 转 换 为 子 类。07.is和 a s 操 作 符 的 用 处 和 区 别?Q:is是 对 类 型 的 判 断,返 回 bool。(判 断 A 是 否 是 B 类,或 者 A是 不 是 B 的 子 类)。(如 果 个 对 象 是 某 个 类 型 或 是 其 父 类 型 的 话 就 返 回 true,否 则 就 会 返 回 为 false。另 外 is操 作 符 永 远 不 会 抛 出 异 常。as是 用 来 做 类 型 转 换 的。as只 能 针 对 引 用 类 型 的 转 换。a s 是 先 判 断 再 转 换(a s 操 作 符 首 先 测 试 转 换 是 否 合 法,如 果 合 法 就 转 换,否 则 返 回 NULL。不 会 报 错)这 两 者 都 不 会 抛 出 异 常。08.0verride可 以 重 写 哪 些“类 型”的 方 法?Q:可 以 重 写 虚 方 法(virtual)必 须 有 方 法 体 还 可 以 重 写 抽 象 方 法(abstract)没 有 方 法 体 09.什 么 是 多 态?Q:就 是 用 某 个 子 类 来 实 例 化 父 类,调 用 的 是 父 类 的 抽 象 方 法(虚 方 法),但 实 际 执 行 的 是 子 类 实 例 重 写 的 方 法 10.抽 象 方 法 只 能 定 义 在 抽 象 类 中 吗?Q:是 的。(virtual or abstract members cannot be private)面 向 对 象(三)01.CLR什 么 时 候 加 载 类?Q:是 在 第 一 次 在 代 码 中 遇 到 这 个 类 的 时 候 才 加 载 类 的 静 态 成 员 和 信 息。(为 了 节 约 资 源,只 在 用 的 时 候 开 始 加 载 进 去)02.当 存 在 继 承 关 系 的 时 候,创 建 子 类 对 象 的 时 候 会 不 会 创 建 父 类 对 象 呢?Q:这 个 很 易 错!!!当 我 们 创 建 一 个 子 类 时 不 会 创 建 父 类 对 象,只 会 有 一 个 对 象。Person c=new Student(),(当 我 们 new 个 子 类 的 时 候,在 内 存 中,只 有 一 个 子 类 对 象)!-!一 一 那 下 面 括 号 里 面 的 就 是 错 误 的!!(new子 类 时,先 创 建 子 类 对 象,调 用 子 类 的 构 造 函 数 时,创 建 父 类 对 象,调 用 父 类 构 造 函 数 最 后 返 回 来 执 行 子 类 构 造 函 数 方 法 体 代 码 子 类 默 认 调 用 父 类 的 无 参 构 造 函 数 如 果 父 类 里 没 有 无 参 构 造 函 数,则 必 须 显 示 的 调 用)其 实 在 内 存 中 是 没 有 对 象 概 念 的!new的 时 候 是 根 据 子 类 和 父 类 所 有 静 态 成 员 的 大 小 以 及 类 型 指 针 开 辟 个 总 的 空 间(此 空 间 不 包 含 方 法),子 类 和 父 类 的 类 型 指 针 指 向 两 个 类 的 方 法 表,所 以,子 类 对 象 可 以 访 问 到 父 类 和 子 类 的 方 法。03,如 果 子 类 和 父 类 存 在 同 名 但 没 有 重 写 关 系 的 方 法 的 时 候,那 么 会 调 用 哪 个 方 法?(两 种 情 况:是 使 用 子 类 对 象,而 是 使 用 父 类 对 象)Q:如 果 子 类 和 父 类 存 在 同 名 但 没 有 重 写 关 系 的 方 法,那 么 调 用 时,如 果 是 父 类 变 量 调 用,则 调 用 父 类 方 法,如 果 是 子 类 变 量 调 用,则 调 用 子 类 方 法 04.如 果 子 类 和 父 类 存 在 同 名 且 有 重 写 关 系 的 方 法,那 么 会 调 用 那 个 方 法?(两 种 情 况:是 使 用 子 类 对 象,而 是 使 用 父 类 对 象)Q:如 果 子 类 和 父 类 存 在 同 名 且 有 重 写 关 系 的 方 法,那 么 不 管 变 量 是 什 么 类 型,调 用 的 都 是 子 类 的 方 法。05.虚 方 法 和 抽 象 方 法 的 相 同 点 与 不 同 点?Q:相 同 点:都 能 被 子 类 重 写;都 不 能 为 私 有 的 不 同 点:1.abstract和 virtual的 关 键 字 不 同 2.抽 象 方 法 一 定 没 有 方 法 体,而 虚 方 法 必 须 有 方 法 体。3.virtual方 法 的 子 类 可 以 重 写 父 类 方 法 也 可 不 重 写,而 抽 象 方 法 的 所 在 的 类 的 子 类 必 须 重 写 该 父 类 方 法 4.抽 象 方 法 必 须 在 抽 象 类 中 声 明,而 虚 方 法 可 以 存 在 于 任 何 个 类 里 面 5.virtual方 法 必 须 有 现 实(哪 怕 是 空 实 现),而 abstract方 法 必 须 没 有 实 现 06.子 类 中 的 base关 键 字 指 向 的 是 子 类 对 象 还 是 父 类 对 象?它 本 身 的 类 型 是 子 类 类 型 还 是 父 类 类 型 呢?Q:当 然 是 指 向 的 父 类 对 象。但 是 本 身 是 子 类 的 类 型。(base就 是 子 类 对 象 本 身,只 不 过 类 型 是 父 类)07.为 什 么 要 有 抽 象 类?Q:抽 象 类 存 在 的 目 的 就 是 指 定 规 则,而 不 是 具 体 实 现,是 为 了 约 束 子 类 的 行 为,具 体 实 现 交 给 子 类 完 成。08.使 用 多 态 的 好 处 是 什 么?Q:1.低 耦 合,高 内 聚。(低 耦 合 一 代 码 的 内 部 各 个 层 之 间 的 关 联 小,相 互 之 间 约 束 少。髙 内 聚 一 方 法 的 功 能 和 职 责 单,即 一 个 方 法 只 做 一 件 事 情。)2.实 现 代 码 的 可 维 护 性 和 可 扩 展 性。3.把 不 同 的 子 类 对 象 都 当 作 父 类 来 看,可 以 屏 蔽 不 同 子 类 对 象 之 间 的 差 异,写 出 通 用 的 代 码,做 出 通 用 的 编 程,以 适 应 需 求 的 不 断 变 化。09.什 么 情 况 下 的 类 不 能 被 实 例 化?Q:1.抽 象 类 2.静 杰 类 3.类 的 构 造 函 数 被 私 有 化 10.什 么 情 况 下 抽 象 类 的 子 类 不 需 要 实 现 父 类 的 抽 象 成 员?Q:子 类 也 是 抽 象 类 的 时 候。11.虚 方 法(虚 拟 成 员)和 抽 象 方 法(抽 象 成 员)能 不 能 被 私 有 化?Q:当 然 不 能。(首 先 编 译 就 会 报 错)。深 层 原 因:他 们 两 者 存 在 的 目 的 就 是 为 了 让 子 类 去 重 写,如 果 私 有 化 了,就 没 意 义 了。12.静 态 成 员 能 不 能 被 标 记 为 virtual、override或 abstract?Q:不 能:13.接 口 的 命 名 规 则?Q:以 大 写 I 为 开 头,以 able结 尾。表 示 有 某 种 能 力。14.什 么 是 接 口?Q:特 殊 的 抽 象 类。他 的 存 在 完 全 是 为 了 约 束 和 统 一 类 的 行 为。15.接 口 能 包 含 的 成 员 有 哪 些?Q:接 口 只 有 方 法、属 性、索 引 器 和 事 件 的 声 明16.接 口 的 访 问 权 限 修 饰 符 只 能 是 哪 两 种?Q:public 和 internal17.接 口 能 不 能 继 承 接?Q:能。而 且 可 以 实 现 多 个 接 口。18.如 果 个 抽 象 类 继 承 了 一 个 接 口,那 么 将 继 承 的 方 法 设 置 为 抽 象 方 法,还 是 去 实 现 该 方 法?Q:都 可 以。既 可 以 在 抽 象 类 的 子 类 中 去 实 现,也 可 在 抽 象 类 中 直 接 实 现。付 炯 2 月 19日 1、使 用 接 口 的 注 意 事 项 Q:l,接 口 中 的 成 员 不 能 加 访 问 修 饰 符;2,接 口 中 的 成 员 不 能 有 任 何 实 现;3,实 现 接 口 的 子 类 的 必 须 实 现 接 口 的 全 部 成 员;4,接 口 中 只 能 有 方 法,属 性,索 引 器,事 件,不 能 有 字 段。5,个 类 可 以 同 时 继 承 一 个 类 并 实 现 多 个 接 口,如 果 一 个 子 类 同 时 继 承 了 父 类 A,并 实 现 了 接 口 IA,那 么 在 语 法 上 A 必 须 写 在 IA的 前 面,因 为 类 是 单 继 承 的,而 接 口 可 以 实 现 多 个。6,显 示 实 现 接 口 和 隐 式 实 现 接 口 时 需 要 注 意 的 问 题,(通 常 我 们 是 隐 式 实 现 的),类 实 现 接 口,可 以 显 式 的 实 现 接 口 里 的 方 法,但 是 注 意:一 旦 使 用 显 式 实 现 接 口 里 的 方 法 后,那 么 该 方 法 只 能 被 接 口 变 量 调 用 IFlyable fly=new Bird();fly.Fly()J 正 确 Bird fly=new BirdO;fly.FlyO;错 误 7,向 上 转 型 8,单 职 责 原 则(避 免 定 义 体 积 庞 大 的 接 口,因 为 这 样 会 造 成“接 口 污 染”,只 把 相 关 联 的 组 成 员 定 义 到 个 接 口 中)2、接 口 与 抽 象 类 的 区 别 Q:相 同 点:接 口 和 抽 象 类 都 不 能 被 实 例 化;不 同 点:1,接 口 中 不 能 存 在 有 具 体 实 现 的 方 法;而 抽 象 类 中 可 以 有 具 体 的 方 法 实 现。(接 口 只 能 定 义 行 为,而 抽 象 类 既 可 以 定 义 行 为 也 可 以 提 供 实 现)2,接 支 持 多 继 承,而 抽 象 类 不 能 实 现 多 继 承;3,按 可 以 定 义 方 法 Method,属 性 property,索 引 器 Index,事 件 Event的 签 名,但 不 能 定 义 字 段 和 这 些 东 西 的 具 体 实 现,而 抽 象 类 什 么 都 能 定 义 和 实 现,除 了 不 能 被 实 例 化 老 邹 的 2011年 答 案:1)抽 象 基 类 可 以 定 义 字 段、属 性、方 法 实 现。接 口 只 能 定 义 属 性、索 引 器、事 件、和 方 法 声 明,不 能 包 含 字 段。2)抽 象 类 是 个 不 完 整 的 类,需 要 进 步 细 化,而 接 口 是 个 行 为 规 范。微 软 的 自 定 义 接 口 总 是 后 带 able字 段,证 明 其 是 表 述 类 我 能 做。”。3)接 口 可 以 被 多 重 实 现,抽 象 类 只 能 被 单 继 承。4)抽 象 类 更 多 的 是 定 义 在 系 列 紧 密 相 关 的 类 间,而 接 口 大 多 数 是 关 系 疏 松 但 都 实 现 某 一 功 能 的 类 中。5)抽 象 类 是 从 系 列 相 关 对 象 中 抽 象 出 来 的 概 念,因 此 反 映 的 是 事 物 的 内 部 共 性;接 口 是 为 了 满 足 外 部 调 用 而 定 义 的 个 功 能 约 定,因 此 反 映 的 是 事 物 的 外 部 特 性。6)接 口 基 本 上 不 具 备 继 承 的 任 何 具 体 特 点,它 仅 仅 承 诺 了 能 够 调 用 的 方 法。7)按 可 以 用 于 支 持 回 调,而 继 承 并 不 具 备 这 个 特 点。8)抽 象 类 实 现 的 具 体 方 法 默 认 为 虚 的,但 实 现 接 口 的 类 中 的 接 口 方 法 却 默 认 为 非 虚 的,当 然 您 也 可 以 声 明 为 虚 的。9)如 果 抽 象 类 实 现 接 口,则 可 以 把 接 口 中 方 法 映 射 到 抽 象 类 中 作 为 抽 象 方 法 而 不 必 实 现,而 在 抽 象 类 的 子 类 中 实 现 接 口 中 方 法 3、类 型 转 换 转 换 分 类Q:隐 式 转 换 int num=1;string str=num.tostringO;强 制 转 换 int a=5;(double)b=a;转 换 条 件 ToStringO 方 法 Q:它 是。bject对 象 的 个 虚 方 法,可 以 自 己 去 重 写 该 方 法。如 果 不 重 写 就 返 回 类 型 名。Parse()和 TryParse()方 法 Q:相 同 点:都 是 针 对 于 字 符 串 进 行 的 值 类 型 转 换。不 通 点:1,返 回 值 不 一 样。Parse。是 返 回 要 转 换 的 类 型,而 TryParse()返 回 一 个 转 换 是 否 成 功 的 boo!值。2,Parse。转 换 失 败 会 抛 异 常,而 TryParse()转 换 失 败 返 回 false,不 会 抛 异 常。3,Parse。直 接 传 入 要 转 换 的 类 型 的 值,而 TryParse。需 要 一 个 out输 出 参 数 输 出 转 换 的 结 果。4、静 态 成 员 加 载 时 机(什 么 时 候 加 载 静 态 成 员?)Q:在 该 静 态 成 员 第 一 次 被 调 用 的 时 候 加 载。适 用 情 形(什 么 时 候 用 静 态 成 员?)Q:在 整 个 程 序 内 部 共 享 的 数 据 定 义 为 静 态 的。通 常 被 作 为 具 类 使 用。比 如 SQLHelper在 普 通 类 和 静 态 类 中 的 区 别 Q:1,静 杰 类 需 要 用 statico静 态 类 不 能 被 实 例 化。2 静 态 类 中 只 能 包 含 静 态 成 员;3,静 态 成 员 属 于 类 所 有,非 静 态 成 员 属 于 类 的 实 例 所 有。4,在 实 例 方 法 中 可 以 直 接 调 用 静 态 成 员,但 在 静 态 方 法 中 不 能 直 接 调 用 实 例 方 法。5,静 态 类 和 静 态 变 量 创 建 后 始 终 使 用 同 一 块 内 存,而 使 用 实 例 的 方 法 会 创 建 多 个 内 存。6,静 杰 构 造 函 数 不 能 有 参 数,也 不 能 有 访 问 修 饰 符(默 认 是 private)5、静 态 类 的 继 承 Q:1,(从 子 类 的 角 度)静 杰 类 不 能 被 任 何 类 继 承 2,(从 父 类 的 角 度)静 态 类 只 能 继 承 Object类,不 能 继 承 其 他 的 类。6、类 和 成 员 的 访 问 修 饰 符 Q:1,类 的 默 认 访 问 修 饰 符 是 internal,2,类 的 成 员 的 默 认 访 问 修 饰 符 是 privatea.类 的 访 问 修 饰 符 只 有 两 种:public,internal(默 认)b.成 员 的 访 问 修 饰 符 有:public,protected,private(默 认)7、结 构 本 质 是 值 类 型 值 类 型 和 引 用 类 型 的 选 择 Q:1.值 类 型:主 要 是 用 来 封 装 组 数 据,并 为 数 据 提 供 种 简 单 的 处 理 方 式 2 引 用 类 型:1).主 要 用 来 封 装 数 据 和 行 为 2)使 用 面 向 对 象 的 特 征;3)当 类 型 中 的 成 员 比 较 多 的 时 候 用 结 构(存 在 堆 里)new关 键 字 的 作 用 Q:结 构 在 使 用 new关 键 字 创 建 对 象 后,所 有 的 成 员 变 量 都 已 经 存 在,并 有 默 认 值(值 类 型)如 果 没 有 用 new关 键 字,则 需 要 程 序 员 手 动 为 所 有 的 用 到 了 的 成 员 变 量 赋 值,之 后 才 能 调 用 结 构 对 象 里 的 方 法 属 性 结 构 不 new也 可 以 使 用,但 是 必 须 给 使 用 到 的 结 构 成 员 赋 值 才 能 使 用 8、类 和 结 构 的 区 别 Q:1,结 构 是 值 类 型,是 分 配 在 内 存 的 栈 上 的。而 类 是 引 用 类 型,是 分 配 在 内 存 的 堆 上 的;2,结 构 不 能 被 继 承,因 为 结 构 是 值 类 型,隐 式 继 承 自 System.ValueType3,结 构 是 值 传 递 的(复 制 传 递),而 类 是 引 用 传 递 的。9、值 类 型 和 引 用 类 型 作 为 参 数 传 递 的 区 别 Q:值 类 型 是 值 传 递 的(复 制 传 递),而 类 是 引 用 传 递 的(传 的 是 地 址 的 引 用)。10、访 问 级 别 约 束 Q:1,子 类 的 访 问 级 别 不 能 比 父 类 高2,方 法 参 数 的 访 问 级 别=方 法 的 访 问 级 别(比 如 当 方 法 的 参 数 传 递 的 是 个 类 对 象 时,那 么 此 时 这 个 类 对 象 的 访 问 级 别 要 高 于 当 前 方 法 的 访 问 级 别)11、析 构 函 数 Q:1,个 类 只 能 有 一 个 析 构 函 数,2,无 法 继 承 或 重 载 析 构 函 数 3,我 们 无 法 手 动 去 调 用 析 构 函 数,因 为 它 是 被 GC(垃 圾 回 收 器)自 动 调 用 的 4,析 构 函 数 不 能 有 访 问 修 饰 符,也 不 能 有 参 数 5,不 能 在 结 构 体 中 定 义 析 构 函 数(为 什 么 呢?)一 因 为 结 构 是 值 类 型,而 值 类 型 是 存 储 在 栈 中 的,栈 中 的 数 据 在 用 完 之 后 就 立 即 销 毁 了,而 析 构 函 数 的 目 的 就 是 用 来 释 放 资 源 的,一 般 存 储 在 堆 中 的 引 用 类 型 需 要 GC去 释 放,因 而 结 构 体 中 是 不 能 定 义 析 构 函 数 的,只 能 对 类 使 用 析 构 函 数。析 构 函 数 语 法:c