天天看点

java中的抽象类和抽象方法

abstract修饰抽象类和抽象方法。

  包含抽象方法的类只能定义成抽象类,但是抽象类中可以没有抽象方法。

  抽象方法没有方法体。只能由子类提供实现(重写)。

  抽象类只能被继承,final修饰的类不能被继承,所以abstract和final不能共存。

抽象方法如下所示:

在上面的代码中,这个抽象类包含了初始化块、构造器。

下面定义一个三角形类,继承Sharp类,实现Sharp类中的抽象方法。

假设还有个Circle类继承了Sharp类,那么如下代码:

这段代码定义了2个Sharp类型的引用性变量,分别指向Triangle和Circle。s1和s2可以直接调用上面的方法,无需强制类型转换成其子类的类型。

注:利用抽象类和抽象方法可以充分发挥多态的优势,使用更加灵活。