Abstract关键字

    1. 用abstract关键字来修饰一个类时,这个类就叫抽象类

      abstract 类名{}

    2. 用abstract关键字来修饰一个方法时,这个方法就是抽象方法

    访问修饰符abstract 返回类型 方法名(参数泪飙);//没有方法体,因为抽象方法不能有方法体

    1. 抽象类的价值更多作用时在于设计,是设计者设计好后,让子类继承并实现抽象类
    2. 抽象类,是考官比较爱问的知识点,再框架和设计模式使用较多

    抽象类使用的注意事项和细节讨论

    1. 抽象类不能被实例化
    2. 抽象类不一定要包含abstact方法。也就是说,抽象类可以没有abstract方法
    3. 一旦类包含了abstract方法,则这个类必须声明为abstract
    4. abstract只能修饰类和方法,不能修饰属性和其他的
    5. 抽象类可以有任意成员【抽象类的本质还是类】,比如:非抽象方法,构造器2,静态属性等等
    6. 抽象方法方法不能有{},即不能实现
    7. 如果一个类继承了抽象类,则它必须实现抽象类的所有抽象方法,除非它自己也声明为抽象类
    8. 抽象方法不能使用private,final和static来修饰,因为这些关键字都是和重写违背的

    小结:
    现实中确实有些父类中的方法确实没有必要写,因为各个子类中的这个方法肯定会有不同,所以没有必要再父类里写。当然你也可以把抽象类都写成非抽象类,但是这样没有必要。
    比如计算一个程序功能完成所需要的时间,在每个程序前后都写的话,就很浪费时间,代码限的臃肿。我们可以写一个抽象类,在抽象类中,写好一个计时器。因为每个程序功能工作内容不同,所有写一个抽象的工作类。使得继承的子类重写这个工作类,这样就可以方便的计算出完成时间,只需要在抽象父类中写一次就可以一直用。