继承与多态java

  • 格式:doc
  • 大小:136.15 KB
  • 文档页数:12
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 AmericanPeople extends People
{
public void speakHello()
{
System.out.println("How do you do?");
{
public void speakHello()
{
System.out.println("你好!");
}
public void averageHeight()
{System.out.println("北京人平均身高为173厘米");
}
public void averageWeight()
{ห้องสมุดไป่ตู้
System.out.println("北京人平均体重为66公斤");
void speakHello()、public void averageHeight()和publicvoid averageWeight()方法。
②ChinaPeople类是People的子类,新增了public void chinaGongfu()方法。要求chinaPeople重写父\类的public void speakHello()、public voidaverageHeight()和public void averageWeight()方法。
4.接口。改用接口来实现题目3
实验中任务
实验结果:
1.1源代码:
public class commisssionEmployee extends Employee
{
private double rate,total,money;
public commisssionEmployee(String newsurname,String newname,long newssn,double newrate,double newtotal)
调用,并且必须是第一句!
实验内容及过程(步骤):
1、打开电脑进入JDK1.5以上,JCreator等编辑工具中。
2、新建一个.java开始编辑程序,编辑完毕进行调试。
3、试验内容。
(1)继承。创建图1中的各个类。Employee类应有姓,名和社会保险号。
SalariedEmployee类还应有周薪;HourlyEmployee类还应有每小时工资和工作时数;commisssionEmployee类还应有佣金率和销售总额。每个类都应有合适的构造函数,设置方法和读取方法。编写程序,实例化这些对象,并输出与每个对象相关的信息(遵循教材中的方法)。
{
System.out.println("直拳、钩拳.");
}
}
class ChinaPeople extends People
{
public void speakHello()
{
System.out.println("你好,睡了吗?");
}
public void averageHeight()
{
System.out.println("中国人的平均身高:168.78厘米");
④BeijingPeople类是ChinaPeople的子类,新增了public void beijingOpera()方法。要求ChinaPeople重写父类的public void speakHello()、public void averageHeight()和public void averageWeight()方法。
图1 Employee类图
(2)继承。编写一个Java程序,除了主类外,该程序中还有4个类People、ChinaPeople、AmericanPeople和BeijingPeople类。要求如下:
①People类含有访问权限为protected、类型为double的成员变量:height和weight,以及public
{
super(newsurname,newname,newssn);
hourly=newhourly;
hours=newhours;
}
public void weeksalary()
{ week=hourly*hours;
}
public String toString()
{ return surname+name+"\t"+ssn+"\t"+week;
java只支持单继承,不支持多重继承。即java中一个类只能继承于另一个类。我们将被继承的类称之为父类,继承类称之为子类。用关键字extends来实现单继承通过使用关键字this作为一个方法调用来达到这个目的。对于this的任何调用,如果出现,在任何构造函数中必须是第一个语句。构造函数中调用另一构造函数,其调用(this()、super())有且只能有一次,并不能同时出现调用,可以通过super关键字显示地调用父类的构造函数,也可以象使用this对象一样通过super调用父类的成员方法,但父类构造函数只能在子类构造函数中通过super显示
}
}
public class Employee {
protected String surname,name;
protected long ssn;
public Employee(String newsurname,String newname,long newssn)
{
surname=newsurname;
{SalariedEmployee s1=new SalariedEmployee("李","四",1111020211,5012);
HourlyEmployee s2=new HourlyEmployee("刘","莉",1111020215,1509,55 );
commisssionEmployee s3=new commisssionEmployee ("王","明",1111020220,0.5,1456);
beijingPeople.averageWeight();
}
}
public class SalariedEmployee extends Employee
{
private double salary;
public SalariedEmployee(String newsurname,String newname,long newssn,double newsalary)
}
public void beijingOpera()
{
System.out.println("京剧的形成大约有160年左右.");
}
}
public class Testpeople
{
public static void main(String args[])
{
ChinaPeople chinaPeople=new ChinaPeople();
beijingPeople.speakHello();
chinaPeople.averageHeight();
americanPeople.averageHeight();
beijingPeople.averageHeight();
chinaPeople.averageWeight();
americanPeople.averageWeight();
③AmericanPeople类是People的子类,新增了public void americanBoxing()方法。要求AmericanPeople重写父类的public void speakHello()、public void averageHeight()和public void averageWeight()方法。
}
public void averageWeight()
{
System.out.println("中国人的平均体重:65公斤");
}
public void chinaGongfu()
{
System.out.println("快.凶.狠.猛.");
}
}
class BeijingPeople extends ChinaPeople
}
public void averageHeight()
{
System.out.println("美国人平均身高为175厘米");
}
public void averageWeight()
{
System.out.println("美国人平均体重为75公斤");
}
public void americanBoxing()
{super(newsurname,newname,newssn);
salary=newsalary;