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方法。. 当类实现一个接口时,通常使用隐式接口实现,

这样可以方便的访问接口方法和类自身具有的方法和属性。当类实现多个接口时,并且接口中包含相同的方法签名,此时使用显式接口实现。

即使没有相同的方法签名,仍推荐使用显式接口,因为可以标识出哪个方法属于哪个接口。