什么情况下使用抽象类
- 不相关的类要实现接口
- 要指定特定类型的行为,但不关心谁实现该行为
-
抽象方法的继承与实现
当某个继承抽象类时候,如果其本身不是抽象类,则必须实现所继承的抽象类的抽象方法。
抽象类的abstract和final
不能把一个类同时标识为abstract和final,这两个关键字有种相反的含义,abstract的类标识很多类事物总称,可以再分为子类,而final的类不能再分,严格限制,所以abstract和final不能同时使用。
抽象方法和抽象类的注意事项:
抽象方法和抽象类必须使用abstract来修饰,其中抽象方法不能有方法体。
- 含有抽象方法的类智能定义为抽象类,而抽象类可以没有抽象方法。
抽象方法是声明时没有实现的方法(也就是说,没有花括号,直接以分好结束)
抽象类注意事项:
抽象类不能被实例化。
- 抽象类可以包含成员变量,方法(普通方法或者抽象方法),构造器(抽象类的构造器不能用于创建实例,主要是被其子类调用,初始化块,内部类,接口、枚举)等。
- 抽象类可以包含静态字段和静态方法。
- 抽象类只能派生,不能实例化,抽象类可以包含抽象方法,即只声明但没有实现的方法。然后由子类实现这些方法。