抽象类


抽象类

概述

  • Java语言中,用abstract 关键字来修饰一个类时,这个类叫作抽象类。
  • 抽象类是它的所有子类的公共属性的集合,是包含一个或多个抽象方法的类。
  • 抽象类可以看作是对类的进一步抽象。在面向对象领域,抽象类主要用来进行类型隐藏

作用

  • 抽象类的作用在于将许多有关的类组织在一起,提供一个公共的类,而那些被组织在一起的具体的类作为其子类而派生出来。
  • 抽象类刻画了公有行为的特征,并通过继承机制传送给它的派生类。
  • 在 Java 中抽象类表示的是一种继承关系,一个类只能继承一个抽象类

特点

  • 如果一个类包含抽象方法,那么该类必须是抽象类
  • 除抽象类不能实例化对象之外;类的其它功能和普通类一样。
  • 抽象类不能实例化对象,所以抽象类必须被继承,才能被使用
  • 继承抽象类的子类必须重写父类所有的抽象方法。否则,该子类也必须声明为抽象类。

抽象类示例

public abstract class 类名称()

抽象方法

抽象方法的由来

  • 如果要让某个方法的具体实现由它的子类确定,那么可以在父类中声明该方法为抽象方法。
  • 抽象方法使用abstract 关键字来声明,抽象方法只包含一个方法名,而没有方法体。
  • Java语法规定,包含抽象方法的类就是抽象类。

抽象方法示例

修饰符 abstract 返回值类型 方法名 (参数列表)

抽象类的使用

//定义抽象类
public abstract class AbstractDemo {
    public AbstractDemo() {}
    // 定义抽象方法
    public abstract void demo();
}

//定义继承实现类
public  class AbstractDemoSon extends AbstractDemo {
    public AbstractDemo() {}
    // 这里必须实现父类中的抽象方法,否则该类必须声明为抽象类
    public  void demo(){};
}

抽象类的使用细节

  1. 抽象类不能创建对象,只能创建 子类不为抽象类(就是继承的子类不是抽象类,实现了抽象方法的类) 的对象。
  2. 抽象类中,不一定包含抽象方法,但是有抽象方法的类必定是抽象类。
  3. 抽象类的子类,必须重写抽象父类中所有的抽象方法,否则,编译无法通过而报错。除非该子类也是抽象类。

文章作者: zrh
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 zrh !
  目录