声明方法的存在而不去实现的类叫做抽象类(abstract class),它是用于创建一个体现某些基本行为的类,
并为该类声明方法,但不能在该类中实现该类的情况。不能创建abstract 类的实例。然而可以创建一个变量,
其类型是一个抽象类,并让它指向具体子类的一个实例。不能有抽象构造函数或抽象静态方法。
Abstract 类的子类为它们父类中的所有抽象方法提供实现,否则它们也是抽象类为。取而代之,在子类中
实现该方法。知道其行为的其它类可以在类中实现这些方法。
static与abstract,它们不能同时用于修饰一个方法。因为abstract的语义就是说这个方法是多态方法,需要subclass的实现。
而static方法则是在本类中实现的,编译期绑定,不具有多态行为。
synchronized同步,也是一样的道理,具体可以参考JAVA语言规范