抽象类
什么是抽象类
- 概述:父类中的方法,被它的子类们重写,子类各自的实现都不尽相同。那么父类的方法声明和方法主体,只有声明还有意义,而方法主体则没有了存在的意义。我们把
没有方法主体的方法称为抽象方法,类中如果有抽象方法,该类必须定义为抽象类
。- 抽象方法 : 没有方法体的方法。
- 抽象类:包含抽象方法的类。
作用:可以用来实现设计模式
抽象类和抽象方法必须用abstract关键字修饰
格式:
abstract class 类名{} // 抽象类
abstract class 类名字 {}
public abstract 返回值类型 方法名(参数列表));
public abstract void run(); // 抽象方法
作用:
- 可被子类继承,提供共性属性和方法。
- 可声明为引用,更自然的使用多态。
- 不让该类创建对象,只能由具体的子类实例化。
特点
1)抽象方法没有方法体
2)含有抽象方法的类必定是抽象类
3)抽象类不一定含有抽象方法,抽象类也可以有具体方法
4)抽象类拥有其他类一样的特性,但还多了个抽象方法
抽象类的使用要点
1)
抽象类
可以包含属性、方法、构造方法,但是构造方法不能被new实例化
,即抽象类不能被实例化,只能被子类调用,用于子类访问父类的初始化数据,可以声明引用和使用多态的方式调用子类对象2)抽象类的子类可以是抽象类
3)最终必须被非抽象子类(具体类)继承,否则该抽象类没有意义
4)
必须保证抽象类含有无参构造方法
5)继承抽象类的同时必须重写该抽象类的所有抽象方法,除非该类也是抽象类
abstract不能跟以下关键字共存:
private :必须被实现,所以不能使用private
final :必须被实现,所以不能使用final
static 无意义