一、抽象类

抽象类,我们看一下专业的描述是如何定义抽象类的

Java学习里程-----Java基础_13抽象类

通过专业的定义我们知道了,含有抽象方法的类称为抽象类。

二、抽象类的实现

抽象类和抽象方法需要用abstract关键词进行修饰,而且这种类不能实例化,只能通过继承来实现。而且子类继承了抽象类之后,必须需要实现它所有的抽象方法。我们呢来先定义一个抽象类。

我们定义一个星球Planet的抽象类。

Java学习里程-----Java基础_13抽象类

然后我们将一些星球的属性、行为抽象出来,这里我简单弄一下,星球的属性:名称、大小、质量,行为就是自转。

Java学习里程-----Java基础_13抽象类

有了这个抽象类之后,我们创建一个地球,创建一个月球。

Java学习里程-----Java基础_13抽象类

Java学习里程-----Java基础_13抽象类

然后,我们让这俩星球继承这个抽象类

Java学习里程-----Java基础_13抽象类

继承之后,我们就可以写具体的实现了,我们这里就弄个输出就好。

Java学习里程-----Java基础_13抽象类

接着我们写测试类PlanetTest。

1. 我们先证明抽象类不能被实例化。

我们再测试类中实例化planet。

Java学习里程-----Java基础_13抽象类

我们发现,它不让实例化。

2. 那我们再实例化它的子类,我实例化地球,并且调用重写的抽象方法。

Java学习里程-----Java基础_13抽象类

没问题。

三、抽象类的应用

这个应用,在Java23中设计模式中有出现过,而且我也有总结。大家可以看我另外一个博客Java23中设计模式4——创建型模式之抽象工厂模式,这里就有对抽象类的应用。

我们在学习Java设计模式,和设计原则的时候,会常常见到这样的抽象类。包括我们以后写的程序,有很多需要做抽象,然后具体的实现让子类去完成,这样的时候常有,一定要好好理解抽象。

相关文章: