Java基础-----抽象类

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/yuming226/article/details/85180492
抽象类的概念

在java中,一个没有方法体的方法应该定义为抽象方法,而类中如果有抽象方法,该类必须定义为抽象。

抽象方法没有方法体。格式:

public abstract void eat();

抽象类的特点

(1)抽象类和抽象方法必须用abstract关键字修饰。
(2)抽象类中不一定有抽象方法,但是有抽象方法的类必须定义为抽象类。
(3)抽象类有构造方法,但是不能实例化。(因为它不是具体的)
那么不能实例化为什么还要有构造方法呢?
原因:用于子类访问父类数据的初始化。
(4)抽象的子类

1、如果不想重写抽象方法,该子类是一个抽象类。
2、重写所有的抽象方法,这个时候子类是一个具体的类

注意:抽象的实例化可以通过多态来实现(父类引用指向子类对象)。

抽象类的成员特点:
(1)成员变量:既可以是变量,也可以是常量。
(2)构造方法:有,用于子类访问父类数据的初始化。
(3)成员方法:既可以是抽象的,也可以是非抽象的。

抽象类的成员方法特性:
(1)抽象方法,强制要求子类做的事情。
(2)非抽象方法,子类继承的事情,提高代码复用性。

一个类如果没有抽象方法,可以定义成抽象类,其意义就是不创建对象。

不能和abstract共存的关键字:
(1)private 冲突:abstract要求重写但是不能重写。
(2)final 冲突:abstract要求重写但是不能重写
(3)static 无意义:static修饰的方法可以通过类名调用,但是没有方法体所以调用无意义。

猜你喜欢

转载自blog.csdn.net/yuming226/article/details/85180492