Java修饰符 --- abstract

使用抽象类的好处:接口和实现分离

@

一、表明类或者成员方法具有抽象属性

  • abstract 修饰的类为抽象类,如:

    abstract class A {
    }
    
  • abstract 修饰的方法为抽象方法,如:

    abstract int getId();
    

    对于 abstract 方法只能声明不能实现(因为没有方法体),并且只能是实例方法,不能是类方法

二、抽象类(abstract 类)和普通类的区别

  • 抽象类中可以有抽象方法,也可以有普通方法

    普通方法不能有抽象法

  • 普通类可以通过new创建,抽象类不能,所以,想要创建该对象,需要非抽象类子类重写父类的抽象方法,并且实现

三、修饰符矛盾(final、private、static)

  • abstract 不能和 final、private、static 一起修饰使用
  • 原因:abstract 修饰的方法是必须在子类中实现(覆盖),才能以多态方式调用,而 final 修饰父类,子类不能实现;private 修饰,子类不能继承;static 修饰虽然可以实现,但是调用时会先调用编译时类型的方法,也就是父类的 static 方法,结果发现是抽象方法,不能调用,所以,abstract 和 final、private、static不能一起用

四、abstract 类的子类

  • 子类是非 abstract 类,必须重写父类的 abstract 方法,给出方法体
  • 子类是 abstract 类,可以重写父类的 abstract 方法,也可以继承父类的 abstract 方法(暂时不实现abstract方法)
posted @ 2021-10-08 14:16  长歌→  阅读(215)  评论(0编辑  收藏  举报