1.重写与重载的区别
重写的作用范围是父类和子类之间;重载是发生在一个类里面
参数列表:重载必须不同;重写不能修改 返回类型:重载可修改;
重写方法返回相同类型或子类,抛出异常:重载可修改;
重写可减少或删除,一定不能抛出新的或者更广的异常
重写:函数名,参数个数及类型,返回值必须保持一致
2.属性的默认值。(要考虑版本4.5临界值)字符格式化 ${}
3.对象构造器
参数分为:可变参 ,命名参数
实际参数被称为实参,是在调用方法时传递的参数;
形式参数被称为形参,是在方法定义中所写的参数。
4.动态类型 JSON
动态类就是给基类定义一个静态的map
dynamic my=new{
id="10001",
}
5.base和this的区别
this:指当前类,this调用当前类的属性,方法,包括构造函数的方法,继承本类的构造函数
base:指当前类的父类,可调用父类的非私有属性,方法,继承父类的构造函数括号里的参数
6.接口(只定义,不实现)
只负责声明,不负责实现,它代表的是一种能力,成员只能声明,不能包含实现,成员默认是public,而且必须是public
定义:接口是一种约束形式,其中只包括成员定义,不包含成员实现的内容。
目的:接口的主要目的是为不相关的类提供通用的处理服务,由于C#中只允许树形结构中的单继承,
即一个类只能继承一个父类,所以接口是让一个类具有两个以上基类的唯一方式。
声明:接口声明的方式与声明类的方式相似,但使用的关键字是interface,而不是 class。
接口只包含方法、属性、索引器和事件的签名。方法的实现是在实现接口的类中完成的
7. 接口为:显示接口与隐式接口
使用接口名作为方法名的前缀,这称为“ 显式接口实现 ”;传统的实现方式,称为“ 隐式接口实现 ”。
隐式接口实现如下:. 直接用类和接口都可以调用Flying方法。. 当类实现一个接口时,通常使用隐式接口实现,
这样可以方便的访问接口方法和类自身具有的方法和属性。
当类实现多个接口时,并且接口中包含相同的方法签名,此时使用显式接口实现。
即使没有相同的方法签名,仍推荐使用显式接口,因为可以标识出哪个方法属于哪个接口。