本文章不适合入门,只适合有一定基础的人看。我更相信知识细节见高低,我是从4.0开始学的,终于有时间系统的学习C#5.0,是5.0中的知识,会特殊标记下。但写的内容也可能含有其他版本framework的知识,也是为了方便自己更好的记忆C#知识。--Aaronyang的博客(www.ayjs.net)

1. 继承-的疑虑

1.1 一个类,只有一个父类,可以实现多个接口,还要注意顺序

一个结构,没有父类,可以实现多个接口

接口可以继承多个接口,子类必须全部实现

  public class myclass:BaseClass,IInterface1,IInterface2

public struct mystruct:IInterface1,IInterface2

public Interface IInterface1:Interface2,Interface3

1.2 virtual "虚"  关键字,可以标记要作为父类的 属性和函数,函数可以写具体的代码,静态函数和字段不可以标记virtual,子类(派生类)继承它后可以override,不override,默认使用父类的同名方法。

new 出来的隐藏方法,子类和父类拥有同样方法签名的方法,但没有用override重写父类,子类希望被别人调用时候,调用父类的,但自己又需要这样名字的方法,就可以使用new关键字,当然不标记也可以,但编译会警告,不影响使用。

public new int Method1(){}       在本类中就可以使用  this.Method1()  就是本类中的,如果使用base.Method1() 调用的就是父类的。当然你也可以重命名方法来避开这个问题。

1.3 abstract的疑虑:抽象类不能实例化(就是new出来),抽象类的方法不能具体实现,就是个方法声明,与接口概念很像的地方。子类必须重写父类定义的抽象方法。 abstract class MyClass{  public abstract int MyMethod1();}

所以面试经常有跟接口对比的区别的题目

结论:抽象类可以继承抽象类,父抽象类的 方法,在子抽象类可以不实现 ,且可以包含非抽象方法

1.4 sealed "密封" ,密封类不能被继承,密封方法不能被重写。比如string就是一个密封类。

1.5 子类构造函数的疑虑: 先执行父类的,从上往下初始化。很多人可能都不知道,构造函数先执行System.Object对象的构造函数,一步一步往下的。     --因为好多面试题考 :base    初始化值,然后子类使用:base

1.6 除了常用的public,private,protected,还有的可能你不经常用的修饰符   internal 本程序集     protected internal  本程序集的派生类

extern 仅静态[DllImport],程序在外部用另一种语言实现

1.7 接口可以包含什么:除了属性和方法的声明,还有索引器和事件的声明。不能声明"静态"或者"虚"的东东。不能包含非public的东东,不能包含抽象方法,能继承其他接口。好了留个题目:不百度的话,说出至少5个常用的接口。

显示实现接口和隐式实现接口的总结:参考文章

  1. 当类实现一个接口时,通常使用隐式接口实现,这样可以方便的访问接口方法和类自身具有的方法和属性。
  2. 当类实现多个接口时,并且接口中包含相同的方法签名,此时使用显式接口实现。即使没有相同的方法签名,仍推荐使用显式接口,因为可以标识出哪个方法属于哪个接口。
  3. 隐式接口实现,类和接口都可访问接口中方法。显式接口实现,只能通过接口访问。

1.8 可能跳过的节点: 继承后的一些调用,接口的调用。

经常面试题目: abstract和接口的主要区别,OOP三大特性和5大设计原则,一些某某某和某某某能否继承的问题,访问修饰符的区别,

出代码题,最后输出多少。

1.9 作为一年以上的开发人员,都知道的我都跳过了,可能存在疑问的地方保留了。

[AaronYang]C#人爱学不学[3]的更多相关文章

  1. [AaronYang]C#人爱学不学[1]

    当前编写时间:2014年12月24日21:11:14   编写人:杨洋(Aaronyang) 新文章:[AaronYang]C#人爱学不学[1] 声明:->可以理解为 联想到,或者关联的意思. ...

  2. [AaronYang]C#人爱学不学[6]

    不要回头,不要将就,做到这两点,人生就会简单很多幸福很多 --Aaronyang的博客(www.ayjs.net)-www.8mi.me 1. 运算符,还有哪些你能学到? 1.1 不安全运算符: si ...

  3. [AaronYang]C#人爱学不学[4]

    本文章不适合入门,只适合有一定基础的人看.我更相信知识细节见高低,我是从4.0开始学的,终于有时间系统的学习C#5.0,是5.0中的知识,会特殊标记下.但写的内容也可能含有其他版本framework的 ...

  4. [AaronYang]C#人爱学不学8[事件和.net4.5的弱事件深入浅出]

    没有伟大的愿望,就没有伟大的天才--Aaronyang的博客(www.ayjs.net)-www.8mi.me 1. 事件-我的讲法 老师常告诉我,事件是特殊的委托,为委托提供了一种发布/订阅机制. ...

  5. [AaronYang]C#人爱学不学[5]

    这世上有三样东西是别人抢不走的:一是吃进胃里的食物,二是藏在心中的梦想,三是读进大脑的书 --Aaronyang的博客(www.ayjs.net) 1. 数组-的疑惑? 1.1  多维数组      ...

  6. [AaronYang]C#人爱学不学[7]

    做一个决定,并不难,难的是付诸行动,并且坚持到底 --Aaronyang的博客(www.ayjs.net)-www.8mi.me 1. 委托-我的总结 1.1 委托:面试我都会说,把方法当参数.委托包 ...

  7. [AaronYang]C#人爱学不学[2]

    1. 记事本写C#,脱离vs 新建记事本,名字为 helloworld.cs using System; namespace Hello{ public class HelloWorldSay{ st ...

  8. AY写给国人的教程- VS2017 Live Unit Testing[1/2]-C#人爱学不学-aaronyang技术分享

    原文:AY写给国人的教程- VS2017 Live Unit Testing[1/2]-C#人爱学不学-aaronyang技术分享 谢谢大家观看-AY的 VS2017推广系列 Live Unit Te ...

  9. AY写给国人的教程- VS2017 Live Unit Testing[2/2]-C#人爱学不学-aaronyang技术分享

    原文:AY写给国人的教程- VS2017 Live Unit Testing[2/2]-C#人爱学不学-aaronyang技术分享 谢谢大家观看-AY的 VS2017推广系列 Live Unit Te ...

随机推荐

  1. 10_放置街灯(Placing Lampposts,UVa 10859)

    问题来源:刘汝佳<算法竞赛入门经典--训练指南> P70 例题30: 问题描述:有给你一个n个点m条边(m<n<=1000)的无向无环图,在尽量少的节点上放灯,使得所有边都被照 ...

  2. 巧用开发者工具的控制台来调试页面中的js语句

    因为要弄某网页的一个自动登陆工具,所以需要对此网页中的元素利用js进行选取和操作,复杂的js选取如果直接在头脑中想很容易出错,而且一旦出错也不好判断错误原因. 而浏览器带的开发者工具的控制台功能,就给 ...

  3. WCF并发控制与实例模式

    WCF实例模式类型与区别 实例化模式 instanceMode percall        单调模式 [ServiceBehavior(InstanceContextMode=InstanceCon ...

  4. Visualize real-time data streams with Gnuplot

    源文地址 (September 2008) For the last couple of years, I've been working on European Space Agency (ESA) ...

  5. noip2008普及组4题题解-rLq

    (啊啊啊终于补到了今天的作业了) 本题地址:http://www.luogu.org/problem/show?pid=1058 题目描述 小渊是个聪明的孩子,他经常会给周围的小朋友们将写自己认为有趣 ...

  6. 边工作边刷题:70天一遍leetcode: day 88

    Unique Word Abbreviation 要点: 简单题,主要是理解题意.no other words have the same abbreviation as the given word ...

  7. maven 多工程搭建演示

    maven出现后,很多公司会用maven来构建项目,单仅仅只是单项目单工程的 并没有使用多工程来构建,这样在以后,项目越来越大,业务越来越多以后,项目会难以维护,越发庞大,维护成本提高,团队士气也会下 ...

  8. Unity 物理引擎动力学关节

    Unity物理引擎中的各个动力学关节 Hinge Joint (铰链关节) Fixed Joint (固定关节) Spring Joint (弹簧关节) Character Joint(角色关节) C ...

  9. C和指针笔记 3.8 static关键字

    当用于不同的上下文环境时,static关键字具有不同的意思. 当它用于函数定义时,或用于代码块之外的变量声明时,static关键字用于修改标识符的链接属性,从external改为internal,但标 ...

  10. fireworks将图片变为透明色

    如果是新建的图片,只要把画布背景设置成透明,图片完成后保存为GIF格式即可: 如果是已经存在的图片,用Fireworks将图片打开,然后按Ctrl+Shift+X,在弹出界面中格式选择为GIF.在右边 ...