理解
某些父类中,具体的实例没办法具体化,只能用抽象的方法去定义,例如求一个图形的面积和周长,不同的图形计算方式不一样,我们就可以定义一个抽象类,里面有两个抽象方法,一个为面积的抽象方法,一个为周长的抽象方法,具体的实现让子类去实现。
格式
抽象类
使用abstract
关键字修饰的类叫做抽象类
- 抽象类中不一定有抽象方法
- 有抽象方法的类一定是个抽象类
- 抽象类不能创建对象(原因:抽象类里面的抽象方法没有方法体,如果可以创建对象的话,就可以使用对象就可以调用对象的方法,但是抽象方法中没有实现,调用没有意义)
- 抽象类的子类必须要实现父类的抽象方法,除非该子类也是抽象类
抽象方法
使用abstract
关键字修饰的方法叫做抽象方法
- 抽象方法没有方法体,方法体需要子类去重写
注意事项
-
不能用abstract修饰变量、代码块、构造器;
-
不能用abstract修饰私有方法、静态方法、final的方法、final的类。
- 私有方法:私有方法是不能被重写重写的,抽象方法一定要子类去重写
- 静态方法:静态方法可以用类直接调用,抽象方法不能被调用,只能使用多态的形式调用子类的重写方法
- final修饰的类:类不能被继承,抽象类需要子类继承从而重写抽象方法的方法体
- final修饰的方法:抽象方法需要子类重写, finall修饰之后,方法不能被重写了