抽象类与模板模式
发布时间
阅读量:
阅读量
引言
最近正在研究JUC的源码,在实现为ReentrantLock类中的AQS(AbstractQueuedSynchronizer)时发现基于抽象类构建的模板模式应用非常有趣。
介绍模板模式前我们先回顾一下抽象类。
抽象类
什么是抽象类?
《Java编程思想》(Think in Java)第九章对抽象类的说明,我们简单总结下:
首先Java提供了关于抽象方法的一种概念。该概念仅进行声明而不进行实现。该术语通过关键字abstract进行标注:
abstract void f();
抽象类
任何含有至少一个纯虚函数或接口函数的类都被归类为纯虚类。若一特定结构体中存在纯虚函数或接口函数,则该结构体被定义为纯虚结构体。否则会导致编译错误(因为若试图用纯虚结构体生成实例,则实例将无法继承未实现的功能)。
抽象类需要用abstract关键字修饰:
abstract class A {
abstract void f();
}
抽象类的特点
然而,并非只有抽象方法能够存在于抽象类中;此外还可以包括普通的方法以及属性。与普通类相比的主要区别体现在以下几个方面:
- 抽象方法仅限于public或protected类型,在子类继承过程中禁止使用private关
全部评论 (0)
还没有任何评论哟~
