1. 继承方式用冒号:, 访问基类用base而不是super。
2. 屏蔽基类成员(字段或方法)关键字:new。
3. 虚方法,方法复写使用关键字:virtual、override。
4. 屏蔽和复写的对比:
a. 屏蔽成员后,基类成员仍可使用base关键字访问。
b. 只有在派生类调用时,调用的是派生类重新定义的成员。
c. 如果复写了基类方法,无论基类还是派生类调用的都是派生类的方法。
d. 静态成员不可复写,但可以屏蔽。
5. 类访问修饰符:public、internal(程序集内部可访问,默认可见性)。导包使用using关键字而不是import。
6. 类没有包的概念,区分类路径使用命名空间,文件名和类名无需一致,一个文件中也可以包含多个公共类。
7. 类的成员修饰符:
private、
protected(派生类可访问,不关心程序集)、
internal(程序集内部类可访问)、
protected internal(程序集内部类 或者 派生类都可以访问)、
public。
a. 默认修饰符为private。
b. 成员不能比类的访问性更高。
8. 类允许定义抽象成员:
a. abstract,但必须是成员方法,没有实现代码块。
b. 派生类实现时需使用override。不可与virtual共用。
9. 密封类:sealed, 类似final类,不可被继承。
10. 静态类:static,隐式密封不可被继承,不能有实例成员。
11. 命名规范:
a. Pascal. 常用于类中对外可见部分的成员的名称:类、方法、命名空间、属性和公共字段。
b. Camel. 常用于局部变量和形参名称。
c. _ + Camel. 常用于私有变量和受保护字段。
12. 支持类的扩展方法:
static class ExtendMyData {// 必须是静态的
// 必须是公共静态的
public static double Average(this MyData data) {
...
}
}