Java抽象

描述

抽象方法:只用关键字abstract声明方法头部,不声明方法体内容。

抽象类:用关键字abstract声明。

  • 抽象类有构造方法,但是不能直接创建实例对象,必须通过子类创建。
  • 子类必须重写父类中的抽象方法。

抽象类与抽象方法:

  • 抽象方法所在的类必须为抽象类
  • 抽象类中可以有抽象方法,也可以没有
  • 抽象类中可以有非抽象方法,也可以没有

抽象类中可以有静态变量,并可以直接通过类名调用

意义

抽象方法与空方法:

在形式上,两者是一致的,都是只声明了方法头部,但是没有写方法体内容。并且可以通过子类重写方法,实现功能。

但是,编程应该遵循“专业的机制做专业的事”,比如在spring中@Component与@Service。

如果要定义一个方法,暂时什么事情也不做,需要通过它的重写方法来定义内容,那么这个方法就应该定义为抽象方法。

同时,抽象方法规定(提醒)程序员必须在子类中重写该方法,程序才能正常运行。

抽象类与非抽象类:

抽象类机制在一定程度上是为了支持抽象方法。但是抽象方法对应暂时不用实现的方法,而抽象类对应的是抽象上的概念类,不需要直接创建其实体对象。

面向对象的种种特性/机制是程序对现实的抽象

抽象类和抽象方法:

虽说非抽象类和非抽象方法通过继承也能够实现多态,但是抽象类和抽象方法进一步强化了多态机制。

原文地址:https://www.cnblogs.com/heibaimao123/p/13770044.html