什么情况下使用抽象类

  1. 不相关的类要实现接口
  2. 要指定特定类型的行为,但不关心谁实现该行为
  3. 利用类型的多重继承

    抽象方法的继承与实现

    当某个继承抽象类时候,如果其本身不是抽象类,则必须实现所继承的抽象类的抽象方法。

    抽象类的abstract和final

    不能把一个类同时标识为abstract和final,这两个关键字有种相反的含义,abstract的类标识很多类事物总称,可以再分为子类,而final的类不能再分,严格限制,所以abstract和final不能同时使用

    抽象方法和抽象类的注意事项:

  4. 抽象方法和抽象类必须使用abstract来修饰,其中抽象方法不能有方法体。

  5. 含有抽象方法的类智能定义为抽象类,而抽象类可以没有抽象方法。
  6. 抽象方法是声明时没有实现的方法(也就是说,没有花括号,直接以分好结束)

    抽象类注意事项:

  7. 抽象类不能被实例化。

  8. 抽象类可以包含成员变量,方法(普通方法或者抽象方法),构造器(抽象类的构造器不能用于创建实例,主要是被其子类调用,初始化块,内部类,接口、枚举)等。
  9. 抽象类可以包含静态字段和静态方法。
  10. 抽象类只能派生,不能实例化,抽象类可以包含抽象方法,即只声明但没有实现的方法。然后由子类实现这些方法。