class C: B{ public override void F() { // actual implementation of F }}
复制代码
抽象类 A 引入抽象方法 F。类 B 引入另一个方法 G,但由于它不提供 F 的实现,B 也必须声明为抽象类。类 C 重写 F,并提供一个具体实现。由于 C 中没有了抽象成员,因此可以(但并非必须)将 C 声明为非抽象类。
总的来说抽象类和一般类的区别来说,只有一点 就是抽象类不能创建实例。作者: 付维翔 时间: 2012-11-1 23:22
楼上兄弟讲解的抽象的类语法很详细了,但我感觉不有必要补充一点,因为上面只是介绍了一下抽象的语法和用法规则。记得一开始学java的时候,我很迷惑,为什么要使用抽象类?因此这个方面出现,若想明白什么是抽象类,不能仅从用法规则来说明。我们如何定义一个抽象类呢(不从代码角度思考):规定出所有的具体类的方法特征作用系统的抽象层,这个抽象层预见了所有的可能扩展,因此在任何情况下不会改变。这样做的好处是什么呢?这使得系统满足了系“开-闭”原则的第二条:对修改关闭同时,从抽象层导出一个或多个新的具体类可以改变系统的行为,因此系统的设计对扩展是开放的,这就满足了“开-闭”原则的第一条:对扩展开放。定义抽象类,我们可以根据依赖倒转原则,开发很好的松耦合的系统,加强系统的可维护性。抽象层的好处不有很多,先举这一些吧。本人一点小拙见,如有错误,欢迎指证作者: KJD 时间: 2012-11-2 11:04