c# 入门级Java对比 3 —— 类的继承

来源:互联网 发布:防sql注入攻击 编辑:程序博客网 时间:2024/06/03 14:52

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) {    ... }}



0 0