java抽象类与抽象方法

基础知识

  • 抽象方法:没有方法体的方法
  • 抽象类:包含抽象方法的类

抽象类通常都是用来表征对问题领域进行分析、设计中得出的抽象概念,是对大多数看上去不同,可是本质上却是相同的具体概念的抽象。构造出一个固定的一组行为的抽象描述,可是这组行为却又可以有任意个可能的具体实现方式,这个抽象描述就是我们所说的抽象类。

子类重写父类中的方法,且子类对父类方法的实现各不相同。

使用abstract关键字修饰的方法就是抽象方法。

抽象方法只包含一个方法名,没有方法体。

如果一个类包含抽象方法,该类必须是抽象类。

例如:

public abstract class Person {
    public abstract void say();

}

注意事项:

1.继承抽象类的子类必须重写父类所有的抽象方法否则该子类也必须声明为抽象类。

2.抽象类不能创建对象。只能创建其非抽象子类的对象。(抽象方法没有方法体,没有意义。)

3.抽象类中可以有构造方法,是供子类创建对象时,初始化父类成员用的。(子类构造方法中有默认的super(),需要访问父类构造方法。)

4.抽象类中不一定包含抽象方法,但是有抽象方法的类一定是抽象类。

抽象类的作用

1.方法可以复用而接口不能。大多情况下,我们用到的方法的父类都是一个抽象类而不是接口,,因为方法可以复用。如果接口,就需要写很多重复代码,且不易修改。

2.抽象类可以默认实现某些方法,就不需要对一些方法重复实现相同的功能。抽象类的目的在于,你可以更细致化的表明哪些是相同的,哪些是不同的

3.在面向对象的方法中,抽象类主要用来进行类型隐藏。

构造出一个固定的一组行为的抽象描述,可是这组行为却可以有任意个可能的具体实现方式,这个抽象描述就是我们所说的抽象类

这一组任意个可能的具体实现就表现为所有可能的派生类

模块能够操作一个抽象体

因为模块依赖于一个固定的抽象体,所以它可以是不允许修改的

通过从这个抽象体派生,也能够扩展这个模块的行为功能

猜你喜欢

转载自blog.csdn.net/weixin_54446335/article/details/129733517