Java实验四

  • 格式:pdf
  • 大小:67.36 KB
  • 文档页数:4

Java实验四

实验四继承性1.编写⼀个Java应⽤程序,除了主类外,该程序中还有4个类:People、ChinaPeople 、AmericanPeople 、BeijingPeople类,要求如下:1)People类有访问权限是protected的double型成员变量:height和weight,以及public void speakHello()、public voidaverageHeight()和public void averageWeight()⽅法。

2)ChinaPeople类是People类的⼦类,新增了public void ChinaGongfu()⽅法。要求ChinaPeople重写⽗类的public voidspeakHello()、public void averageHeight()和public void averageWeight()⽅法。

3)AmericanPeople类是People的⼦类,新增public void americanBoxing()⽅法。要求AmericanPeople重写⽗类的publicvoid speakHello()、public void averageHeight()和public void averageWeight()⽅法。

4)BeigingPeople类是ChinaPeople的⼦类,新增public void beijingOpera()⽅法。要求了BeijingPeople重写⽗类的publicvoid speakHello()、public void averageHeight()和public void averageWeight()⽅法。

class People

{

protected double weight,height;

public void speakHello()

{

System.out.println("yayawawa");

}

public void averageHeight()

{

height=173;

System.out.println("average height:"+height);

}

public void averageWeight()

{

weight=70;

System.out.println("average weight:"+weight);

}

}

class ChinaPeople extends People

{

【代码1】//重写public void speakHello()⽅法,要求输出类似“你好,吃了吗”这样的//汉语信息

【代码2】//重写public void averageHeight()⽅法,要求输出类似//“中国⼈的平均⾝⾼:168.78厘⽶”这样的汉语信息【代码3】//重写public void averageWeight()⽅法,

//要求输出类似“中国⼈的平均体重:65公⽄”这样的汉语信息public void chinaGongfu(){

【代码4】//输出中国武术的信息,例如:"坐如钟,站如松,睡如⼸"等}}

class AmericanPeople extends People

{

【代码5】//重写public void speakHello()⽅法,要求输出类似//“How do you do”这样的英语信息。

【代码6】//重写public void averageHeight()⽅法

【代码7】//重写public void averageWeight()⽅法public void americanBoxing()

{

【代码8】//输出拳击的信息,例如,“直拳”、“钩拳”等}

}

class BeijingPeople extends ChinaPeople

{

【代码9】//重写public void speakHello()⽅法,要求输出类似“您好”这样的汉语信息

【代码10】//重写public void averageHeight()⽅法

【代码11】//重写public void averageWeight()⽅法public void beijingOpera()

{

【代码12】//输出京剧的信息}

}

public class Example

{

public static void main(String args[])

{

ChinaPeople chinaPeople=new ChinaPeople();

AmericanPeople americanPeople=new AmericanPeople();

BeijingPeople beijingPeople=new BeijingPeople();

chinaPeople.speakHello();

americanPeople.speakHello();

beijingPeople.speakHello();

chinaPeople.averageHeight();americanPeople.averageHeight();

beijingPeople.averageHeight();

chinaPeople.averageWeight();

americanPeople.averageWeight();

beijingPeople.averageWeight();

chinaPeople.chinaGongfu();

americanPeople.americanBoxing();

beijingPeople.beijingOpera() ;

beijingPeople.chinaGongfu();

}

}

2.运⾏下⾯的程序,理解成员变量的继承与隐藏。

import java.io.*;

class sum_3{

int sum,num1,num2;

static int num3;

//定义构造函数初始化对象

sum_3(){

num1=0;

num2=0;

num3=0;

sum=0;

}

}

class sub_sum3 extends sum_3{

int sum,num1,num2; //隐藏⽗类sum_3中的实例变量

static int num3; //隐藏⽗类sum_3中的类变量

void sum(int i,int j,int k){

num1=i;

num2=j;

num3=k;

sum=num1+num2+num3;

}

}

public class computing{public static void main (String arg[]){

sub_sum3 m1=new sub_sum3();

m1.sum(100,200,300);

System.out.println("sum="+m1.num1+"+"+m1.num2+"+"+m1.num3+"="+m1.s um);

}

}

3. 设计⼀个汽车类Auto,其中包含⼀个表⽰速度的double型的成员变量speed和表⽰启动的start()⽅法、表⽰加速的speedUp()⽅法以及表⽰停⽌的stop()⽅法。⽅法体内写⼀个输出语句即可。

再设计⼀个Auto类的⼦类Bus表⽰公共汽车,在Bus类中定义⼀个int型的表⽰乘客数的成员变量passenger,另外定义两个⽅法gotOn()和gotOff()表⽰乘客上乘和下车。

编写⼀个主类BusTest测试Bus类的使⽤。在BusTest类中,创建Bus类的对象。再通过对象分别调⽤⽗类Auto的⽅法,访问⽗类Auto的成员变量。以及

调⽤⼦类Bus⾃⼰定义的⽅法,访问⼦类⾃⼰定义的成员变量。