首页 技术 正文
技术 2022年11月13日
0 收藏 612 点赞 4,983 浏览 1600 个字

本文章不适合入门,只适合有一定基础的人看。我更相信知识细节见高低,我是从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();}

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

相关推荐
python开发_常用的python模块及安装方法
adodb:我们领导推荐的数据库连接组件bsddb3:BerkeleyDB的连接组件Cheetah-1.0:我比较喜欢这个版本的cheeta…
日期:2022-11-24 点赞:878 阅读:9,088
Educational Codeforces Round 11 C. Hard Process 二分
C. Hard Process题目连接:http://www.codeforces.com/contest/660/problem/CDes…
日期:2022-11-24 点赞:807 阅读:5,565
下载Ubuntn 17.04 内核源代码
zengkefu@server1:/usr/src$ uname -aLinux server1 4.10.0-19-generic #21…
日期:2022-11-24 点赞:569 阅读:6,413
可用Active Desktop Calendar V7.86 注册码序列号
可用Active Desktop Calendar V7.86 注册码序列号Name: www.greendown.cn Code: &nb…
日期:2022-11-24 点赞:733 阅读:6,186
Android调用系统相机、自定义相机、处理大图片
Android调用系统相机和自定义相机实例本博文主要是介绍了android上使用相机进行拍照并显示的两种方式,并且由于涉及到要把拍到的照片显…
日期:2022-11-24 点赞:512 阅读:7,822
Struts的使用
一、Struts2的获取  Struts的官方网站为:http://struts.apache.org/  下载完Struts2的jar包,…
日期:2022-11-24 点赞:671 阅读:4,905