黑马程序员技术交流社区

标题: 总结抽象类的特点。 [打印本页]

作者: 侍小波    时间: 2012-9-27 08:55
标题: 总结抽象类的特点。
抽象类的特点:
1) 抽象类abstract是用来产生子类的不能被实例化的;
2) 所有的抽象方法abstract都必须在抽象类中;
3) 每一个抽象类的抽象方法都要在它的子类中进行方法重载才能用 ;
4) 一个抽象类中有许多抽象方法它的子类如果没有实现其所有的抽象方法则它的子类还是抽象类不能被实例 ;
5) 抽象类中允许存在非抽象方法非抽象方法可以被子类访问 。
作者: 许庭洲    时间: 2012-9-27 09:01
值得学习ing!
作者: 张文文    时间: 2012-9-27 10:24
嘿,真好。顶个
作者: 杨进    时间: 2012-9-27 11:49
abstract 修饰符用于表示所修饰的类是不完整的,并且它只能用作基类。抽象类与非抽象类在以下方面是不同的:
•        抽象类不能直接实例化,并且对抽象类使用 new 运算符是编译时错误。虽然一些变量和值在编译时的类型可以是抽象的,但是这样的变量和值必须或者为 null,或者含有对非抽象类的实例的引用(此非抽象类是从抽象类派生的)。
•        允许(但不要求)抽象类包含抽象成员。
•        抽象类不能被密封。
当从抽象类派生非抽象类时,这些非抽象类必须具体实现所继承的所有抽象成员,从而重写那些抽象成员。在下面的示例中
abstract class A
{
   public abstract void F();
}
abstract class B: A
{
   public void G() {}
}
class C: B
{
   public override void F() {
      // actual implementation of F
   }
}
抽象类 A 引入抽象方法 F。类 B 引入另一个方法 G,但由于它不提供 F 的实现,B 也必须声明为抽象类。类 C 重写 F,并提供一个具体实现。由于 C 中没有了抽象成员,因此可以(但并非必须)将 C 声明为非抽象类。

作者: 徐宏伟    时间: 2012-9-27 13:28
mark:方法重写和方法重载的区别;





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2