实 验 报 告
班级:网络学号:姓名:
Java 编程技术
1203班
课程: 实验 4 面向对象编程
一、实验目的
通过编程和上机实验理解 Java 语言是如何体现面向对象编程基本思想,了解类的封装方法,以及 如何创建类和对象,了解成员变量和成员方法的特性,掌握 OOP 方式进行程序设计的方法,了解类的继承性和多态性的作用。
二、实验内容
1. 创建一个名为Dog的类,它具有重载的bark()方法。bark()方法应根据不同的基本数据类型的参数来进行重载,bark()方法可根据参数输出狗吠(barking)、咆哮(howling)等信息。编写main()方法来调用不同的bark()方法。
源代码如下:
public class Dog { void f(int m){
System.out.println(\); }
void f(double n){
System.out.println(\); }
public static void main(String[] args){ Dog d=new Dog(); d.f(2); d.f(2.2); } }
运行界面如下:
2. 创建Rodent(啮齿动物)类,其子类有Mouse(老鼠)、Mole(鼹鼠)、Hamster(大颊鼠)。在父类中,提供对所有的Rodent通用的方法。在子类中,根据该子类特定的行为习性来覆盖这些方法。例如老鼠属杂食(omnivorous),鼹鼠主食昆虫(insect),大颊鼠主食植物种子(plant seed)。创建一个Rodent数组,填充不同的数据类型,然后调用父类的方法,观察会发生什么情况。
源代码如下:
public class Rodent { void eat(){
System.out.println(\); }
public static void main(String[] args){ Rodent r[]=new Rodent[4]; Rodent rodent=new Rodent(); Mouse mouse=new Mouse(); Mole mole=new Mole();
Hamster hamster=new Hamster(); r[0]=rodent; r[1]=mouse; r[2]=mole; r[3]=hamster; r[0].eat(); r[1].eat(); r[2].eat(); r[3].eat(); } }
class Mouse extends Rodent{ void eat(){
System.out.println(\); } }
class Mole extends Rodent{ void eat(){
System.out.println(\); } }
class Hamster extends Rodent{ void eat(){
System.out.println(\); } }
运行界面如下:
3. 3.修改上述第9题中的Rodent类,使其成为一个抽象类。只要有可能,就将Rodent的方法声明为抽象方法。创建各种啮齿动物类,观察程序的输出。
源代码如下:
public class Rodent1 {
public static void main(String[] args){ Rodent r[]=new Rodent[3]; Mouse m=new Mouse(); Mole s=new Mole();
Hamster h=new Hamster(); r[0]=m; r[1]=s; r[2]=h; r[0].eat(); r[1].eat(); r[2].eat(); } }
abstract class Rodent{
public abstract void eat(); }
class Mouse extends Rodent{ public void eat(){
System.out.println(\); } }
class Mole extends Rodent{ public void eat(){
System.out.println(\); } }
class Hamster extends Rodent{ public void eat(){
System.out.println(\);
} }
运行界面如下: