Java 抽象(abstract)

Java 抽象(abstract)

抽象

  • 概念
    • 抽象就是从多个事物中将共性的,本质的内容抽象出来
  • 抽象类
    • Java中可以定义没有方法体的方法,方法的具体实现由子类完成,该方法称为抽象方法,包含抽象方法的类就是抽象类。
  • 由来
    • 多个对象具有相同的功能,但功能具体内容有所不同,那么在抽取过程中,只抽取了功能定义,并未抽取功能主体,那么只有功能定义,没有功能主体的方法称为抽象方法。
  • 抽象类特点

    1. 抽象方法一定在抽象类中。
    2. 抽象方法和抽象类必须被abstract修饰。
    3. 抽象类不能用new创建对象,因为调用抽象方法没有意义。
    4. 抽象类中的抽象方法要被使用,必须由子类重写其所有的抽象方法后,创建子类对象调用;如果子类只覆盖了部分抽象方法,那么该子类还是一个抽象类。
    5. 抽象类中可以有抽象方法,也可以由非抽象方法。
    6. 如果一个类是抽象类,那么继承它的子类要么是抽象类,要么重写所有的抽象方法。
  • 抽象类的成员特点

    • 成员变量:可以是变量,也可以是常量

    • 构造方法:有构造方法

    • 成员方法:可以是抽象方法,也可以是非抽象方法

  • 抽象类注意事项

    • 抽象类不能被实例化,为什么还要有构造函数?

      只要是class定义的类里面肯定有构造函数。抽象类中的构造函数是给子类实例化的。

    • 一个类没有抽象方法,为什么要定义为抽象类?

      (不想被继承,还不想被实例化)

    • 抽象类关键字不能和哪些关键字共存

      • final,如果方法被抽象,就需要被重写,而final是不能被重写的,所以冲突。

      • static,被static修饰的方法可以直接用类名调用,而调用抽象方法没有意义。

      • private,被private修饰的方法被私有,子类无法重写。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章