抽象是面向对象程序设计中非常重要的概念,在软件设计中被经常用到。用Java实现抽象类非常简单,难的是如何正确地使用和设计抽象类。
简单来说,当某个类没有包含足够的信息来描绘一个具体的对象,这样个类就可以定义为抽象类。这篇文章,小伟从定义抽象类和抽象的使用来讲解。
定义抽象类和方法
定义抽象类使用abstract关键字。抽象类与普通类一样可以有成员变量、成员方法、静态方法、构造函数等。但是抽象类不能被实例化,必须通过抽象类的非抽象子类来创建对象。
// 定义一个抽象类
public abstract class Airplane {
// 实例成员变量
private String model;
// 公共构造函数
public Airplane(String model) {
this.model = model;
}
// 可以包含方法
public void setDestination() {
System.out.println("Set destination");
}
}
// 继承抽象类
public class Jet extends Airplane {
public Jet(String model) {
super(model);
}
// 可以重写父类方法
public void setDestination() {
System.out.println("Jet Destination");
}
}
抽象类中可以包含抽象方法,抽象方法是用abstract修饰的,只有方法定义,没有方法体的方法。抽象方法必须被子类重写,除非子类也是抽象类。
// 有抽