实验目的
- 掌握子类的继承性;
- 掌握子类的创建过程;
- 掌握成员变量的继承与隐藏使用方法;
- 掌握super关键字的使用;
- 理解父类与子类的构造过程;
- 理解和掌握方法的继承与重写。
实验内容
编写程序模拟类的继承关系:其中,中国人(ChinaPeople)、美国人(AmericanPeople)是人类(People)的子类,北京人(BeijingPeople)是中国人(ChinaPeople)的子类。程序共有5个类,其中一个是主类(Test.java),该类包括main函数,用于测试程序中创建的类。除了Test主类,程序中还有4个类:People、ChinaPeople、AmericanPeople和BeijingPeople 类。
要求如下:
(1)People类中,有权限是protected的float型成员变量height和weight,用于表示身高和体重,以及public void speak()、public void showHeight()和public void showWeight()方法。 该类有两个构造函数:其中一个是不带参的构造函数,另一个是包含height和weight两个参数的构造函数;
(2)ChinaPeople类是People的子类,新增方法public void showHeight()和public void showWeight()。在该类的构造函数中调用父类People的带参构造函数;
(3)AmericanPeople类是People的子类,新增方法public void boxing() 。要求AmericanPeople重写父类的方法public void speak()、public void showHeight()和public void showWeight();
(4)BeijingPeople类是ChinaPeople的子类,新增方法public void opera()。
说明:为了测试以上各类的方法,请在每个方法中插入一句输出语句,例如在People类的speak()方法中添加:System.out.println("这是People类的speak()方法"),其它类方法按照类似的语句进行输出。
package person;
public class People {
protected float height=180;
protected float weight=60;
public void speak() {
System.out.println("Person:I am sperking.");
}
public void showHeight() {
System.out.println();
System.out.println("PeopleHeight(cm):"+height);
}
public void showWeight() {
System.out.println();
System.out.println("PeopleWeight(kg):"+weight);
}
}
package person;
public class ChinaPeople extends People {
public void showHeight() {
System.out.println("ChinaPeople(cm):"+height);
}
public void showWeight() {
System.out.println("ChinaPeople(kg):"+weight);
}
}
package person;
public class AmericanPeople extends People{
float height=190;
float weight=80;
public void boxing() {
System.out.println("AmericanPeopleBoxing: I am boxing.");
}
public void speak() {
System.out.println("AmericanPeopleSpeak: I am speak English.");
}
public void showHeight() {
System.out.println("AmericanShowHeight(cm):"+height);
}
public void showWeight() {
System.out.println("AmericanShowWeight(kg):"+weight);
}
}
package person;
public class BeijingPeople extends ChinaPeople {
public void opera() {
System.out.println("BeijingPeopleOpera Beijing Opera is very good!");
}
package person;
public class Text {
public static void main(String[] args) {
// TODO 自动生成的方法存根
People p1=new People();
p1.showHeight();
p1.showWeight();
p1.speak();
ChinaPeople p2=new ChinaPeople();
p2.showHeight();
p2.showWeight();
p2.speak();
AmericanPeople p3=new AmericanPeople();
p3.showHeight();
p3.showWeight();
p3.speak();
p3.boxing();
BeijingPeople p4=new BeijingPeople();
p4.showHeight();
p4.showWeight();
p4.speak();
p4.opera();
}
}