所谓抽象类就是只声明方法的存在而不去具体实现它的类。抽象类不能被实例化,也就是不能创建其对象。在定义抽象类时,要在class关键字前面加上abstract关键字。定义抽象类,语法格式如下:
abstract class 类名 {
类体
}
定义一个名称为Fruit的抽象类:
public abstract class Fruit { //定义抽象类
public String color; //定义颜色成员变量
//定义构造方法
public Fruit() {
color = "绿色"; //对变量color进行初始化
}
}
在抽象类中创建的,没有实际意义的,必须要子类重写的方法称为抽象方法。抽象方法只有方法的声明,而没有方法的实现,用abstract关键字进行修饰。声明一个抽象方法的基本格式如下:
abstract <方法返回值类型> 方法名(参数列表);
在Fruit抽象类中定义一个抽象方法
public abstract class Fruit { //定义抽象类
public String color; //定义颜色成员变量
//定义构造方法
public Fruit() {
color = "绿色"; //对变量color进行初始化
}
//定义抽象方法
public abstract void harvest(); //收获的方法
}
1.创建Fruit类的子类Apple,并实现harvest()方法,代码如下:
public class Apple extends Fruit {
@Override
public void harvest() {
System.out.println("苹果已经收获");
}
}
2.创建Fruit的子类Orange,并实现harvest()方法,代码如下:
public class Orange extends Fruit {
@Override
public void harvest() {
System.out.println("桔子已经收获");
}
}
3.创建一个包含main()方法的公共类Farm,在该类中执行Fruit类中的两个子类的harvest()方法:
public class Farm {
public static void main(String[] args) {
// TODO Auto-generated method stub
Apple apple = new Apple();
apple.harvest();
Orange orange = new Orange();
orange.harvest();
}
}
执行结果:
苹果已经收获
桔子已经收获