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⾃⼰定义的⽅法,访问⼦类⾃⼰定义的成员变量。