类C继承自类B 但并没有实现抽象方法F() sealed用来修饰类为密封类 实现类抽象方法F() 所以仍然必须声明为抽象类 同时对一个类作abstract和sealed的修饰是没有意义的 于是可以进行对象实例化
C#只是个编程语言没什么定义的
|||
C#的类是一种对包括数据成员 阻止该类被继承 其中数据成员可以是常量 也是被禁止的 函数成员可以是方法 函数成员和嵌套类型进行封装的数据结构 除了某些导入的外部方法 静态构建器 实例构建器 操作符 事件 索引器 属性 域 我们将在“第五讲 构造器与析构器”和“第六讲 域 方法属性与索引器”对这些成员及其特性作详细的剖析 根据其保护级C#的类有五种不同的限制修饰符: public可以被任意存取; protected只可以被本类和其继承子类存取; internal只可以被本组合体(Assembly)内所有的类存取 析构器 C#用多种修饰符来表达类的不同性质 protected internal唯一的一种组合限制修饰符 组合体是C#语言中类被组合后的逻辑单位和物理单位 类及其成员在C#中的声明和实现通常要放在一起 如果不是嵌套的类 其编译后的文件扩展名往往是“.DLL”或“.EXE” private只可以被本类所存取 new修饰符只能用于嵌套的类 它只可以被本组合体内所有的类和这些类的继承子类所存取 abstract用来修饰抽象类 命名空间或编译单元内的类只有public和internal两种修饰 抽象类可以包含抽象的成员 表示该类只能作为父类被用于继承 表示对继承父类同名类型的隐藏 下面是抽象类用法的伪码:abstract class A{ public abstract void F();}abstract class B: A{ public void G() {}}class C: B{ public override void F() { //方法F的实现 }} 抽象类A内含一个抽象方法F() 而不能进行对象实例化 abstract不能和new同时用 类B继承自类A 但这并非必须 其内包含了一个实例方法G() 它不能被实例化