下面将通过一个具体的实例介绍如何定义抽象类及抽象方法
下面将通过一个具体的实例介绍如何定义抽象类及抽象方法。
本实例主要实现定义一个水果类Fruit ,该类为抽象类,并在该类中定义一个抽象方法,同时在其子类中通过覆盖的方法实现该抽象方法。具体步骤如下。
(1)选择Eclipse 主菜单中的“文件”/“新建”/“项目”菜单项,在打开的“新建项目”对话框中,选中“Java 项目”节点,单击“下一步”按钮,在打开的“新建Java 项目”对话框中,输入项目名称06,单击“完成”按钮完成项目的创建。
(2)在包资源管理器中的刚刚创建的项目上,单击鼠标右键,在弹出的快捷菜单中选择“新建”/“类”菜单项,在打开的“新建Java 类”对话框的“名称”文本框中输入类名Fruit ,在“修饰符”区域中,选中default 前面的单选按钮,并勾选abstract 前面的复选框,单击“完成”按钮。
(3)在包资源管理器中,打开刚刚创建的类Fruit.java ,在该类中定义相应的变量和方法,完整代码如下:
Fruit.java 类
abstract class Fruit { //定义抽象类
public String color; //定义颜色成员变量
//定义构造方法
public Fruit(){
color="绿色"; //对变量color 进行初始化
}
//定义抽象方法
public abstract void harvest(); //收获的方法
}
(4)在包资源管理器的项目名称06上单击鼠标右键,在弹出的快捷菜单中选择“新建”/“类”菜单项,在打开的“新建Java 类”对话框的“名称”文本框中输入类名Apple ,在“超类”文本框中输入Fruit ,单击“完成”按钮完成Apple 类的创建。打开该类,并在harvest()方法中输入实现代码。Apple 类的完整代码如下:
Apple.java 类
public class Apple extends Fruit {
public void harvest() {
System.out.println("苹果已经收获!"); //输出字符串“苹果已经收获!”
}
}
(5)参照步骤(4)再创建一个Fruit 类的子类Orange ,具体代码如下:
Orange.java 类
public class Orange extends Fruit {
public void harvest() {
System.out.println("桔子已经收获!"); //输出字符串“桔子已经收获!
} }
(6)再创建一个包含main()方法的公共类Farm ,在该类中执行Fruit 类的两个子类的harvest()方法,具体代码如下:
Farm.java 类
public class Farm {
public static void main(String[] args) {
Apple apple=new Apple(); //声明Apple 类的一个对象apple ,并为其分配内存 apple.harvest(); //调用Apple 类的harvest()方法
System.out.println("调用Orange 类的harvest()方法的结果:");
Orange orange=new Orange(); //声明Orange 类的一个对象orange ,并为其分配内存 orange.harvest(); //调用Orange 类的harvest()方法
}
}
(7)运行本实例,其运行结果如下:
调用Apple 类的harvest()方法的结果:
苹果已经收获!
调用Orange 类的harvest()方法的结果:
桔子已经收获!
完整代码如下:
Fruit.java 完整代码
abstract class Fruit { //定义抽象类
public String color; //定义颜色成员变量
//定义构造方法
public Fruit(){
color="绿色"; //对变量color 进行初始化
}
//定义抽象方法
public abstract void harvest(); //收获的方法
}
Apple.java 完整代码
public class Apple extends Fruit {
public void harvest() {
System.out.println("苹果已经收获!");
}
}
Orange.java 完整代码
public class Orange extends Fruit {
public void harvest() {
System.out.println("桔子已经收获!");
}
}
Farm.java 完整代码
public class Farm {
public static void main(String[] args) {
System.out.println("调用Apple 类的harvest()方法的结果:");
Apple apple=new Apple();
apple.harvest();
Orange orange=new Orange();
orange.harvest();
}
}