1、Java 程序设计 实验四:继承、多态与接口 2015-2016 学年第一学期第 1 页 共 13 页Java 程序设计实验四:继承、多态与接口1. 提交期限和方法期限:第 12 周周五(2015-11-27)23:59 pm 方法:由学习委员收集所有学生的实验报告,以电子档的形式提交给任课教师(发邮箱: ) 。2. 实验目的及要求掌握 Java 的基本数据类型、运算符、表达式和语句。运行环境:JDK1.7开发环境:Eclipse3. 实验内容及题目3.1 子类的继承与方法的重写【题 1 中国人与美国人】在 Eclipse 中创建名为 Lab4 的新项目,编写程序模拟中国人、美国人、北京人。除主类外,程序中有 4 个类:People、ChinaPeople、AmericanPeople和 BeijingPeople 类。要求如下:(1)People 类有权限是 protected 的 double 型成员变量: height 和 weight,以及 public void speakHello( )、public void averageHeight( )和 public void a
2、verageWeight( )方法。(2)ChinaPeople 类是 People 类的子类,新增了 public void chinaGongfu( )方法。要求ChinaPeople 重写父类的 public void speakHello ()、public void averageHeight( )和 public void averageWeight( )方法。(3)AmericanPeople 类是 People 的子类,新增 public void americanBoxing( )方法。要求 AmericanPeople 重写父类的 public void speakHello( )、public void averageHeight( )和public void averageWeight( )方法。(4)BeijingPeople 类是 ChinaPeople 的子类,新增 public void beijingOpera( )方法。要求 BeijingPeople 重写父类的 public void speakHello( )、public void avera
3、geHeight( )和public void averageWeight( )方法。运行效果如下图。按下列代码模板要求,将【代码】部分替换为 Java 程序代码。Java 程序设计 实验四:继承、多态与接口 2015-2016 学年第一学期第 2 页 共 13 页部分代码已给出:/People.javapublic class People protected double weight, height;public void speakHello() System.out.println(yayayaya);public void averageHeight()height = 173;System.out.println(average height: + height);public void averageWeight()weight = 70;System.out.println(average weight: + weight);/ChinaPeople.javapublic class ChinaPeople extends Peoplepublic void spea
4、kHello() System.out.println(您好);public void averageHeight()height = 168.78;System.out.println(中国人平均身高: + height + 厘米);/重写 public void averageWeight()方法,输出:中国人平均体重 :65 公斤/【代码 1】public void chinaGongfu()System.out.println(坐如钟,站如松,睡如弓);/AmericanPeople.javapublic class AmericanPeople extends People /重写 public void speakHello()方法,输出How do you do/【代码 2】/重写 public void averageHeight()方法,输出Americans average height:176 cmJava 程序设计 实验四:继承、多态与接口 2015-2016 学年第一学期第 3 页 共 13 页/【代码 3】public void averageWeight(
5、)weight = 75;System.out.println(Americans average weight: + weight + kg);public void americanBoxing()System.out.println(直拳、勾拳、组合拳);/BeijingPeople.javapublic class BeijingPeople extends ChinaPeople /重写 public void averageHeight()方法,输出北京人的平均身高:172.5 厘米/【代码 4】/重写 public void averageWeight()方法,输出北京人的平均体重 :70 公斤/【代码 5】public void beijingOpera()System.out.println(花脸、青衣、花旦和老生);/Example.javapublic class Examplepublic static void main(String args) ChinaPeople chinaPeople = new ChinaPeople();AmericanPeopl
6、e 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();Java 程序设计 实验四:继承、多态与接口 2015-2016 学年第一
7、学期第 4 页 共 13 页【本题知识点】1. 子类的继承性;2. 子类对象的创建过程;3. 方法的继承与重写。【实验指导】1. 如果子类可以继承父类的方法,子类就有权利重写这个方法,子类通过重写父类的方法可以改变方法的具体行为。2. 方法重写时一定要保证方法的名字、类型、参数个数和类型同父类的某个方法完全相同,只有这样,子类继承的这个方法才被隐藏。3. 子类在重写方法时,不可以将实例方法更改成类方法,也不可以将类方法更改为实例方法,即如果重写的方法是 static 方法,static 关键字必须要保留;如果重写的方法是实例方法,重写时不可以用 static 修饰该方法。【学生解答】(1)程序代码:【代码1】public void averageWeight()weight = 65;System.out.println(中国人平均体重: + weight+公斤);【代码2】public void speakHello() System.out.println(How do you do);【代码3】public void averageHeight()height = 176;Sys
8、tem.out.println(Americans average height:+height +cm);【代码4】public void averageHeight()height = 172.5;System.out.println(北京人平均身高: + height + 厘米);【代码5】public void averageWeight()weight = 70;System.out.println(北京人平均体重: + weight+公斤);(2)运行结果截图:Java 程序设计 实验四:继承、多态与接口 2015-2016 学年第一学期第 5 页 共 13 页【思考题(选做) 】People 类中的 public void speakHello( ), public void averageHeight( ), public void averageWeight( )三个方法的方法体中的语句是否可以省略?【答:】可以省略.3.2 成员变量隐藏与 super 关键字【题 2 银行与利息】在 Lab4 项目中,编写程序。验证教材第 5 章 81 页的【例 5-7】 。假设银行
9、 Bank 已经有了按整年 year 计算利息的一般方法,其中 year 只能取正整数。如按整年计算的方法:Double compuerInterest()interest = year * 0.35 * savedMoney;return interest;建设银行的天利息计算公式为:dayInterst = 天数 * 0.0001 * 存款数大连银行的天利息计算公式为:dayInterst = 天数 * 0.00012 * 存款数参照例子中的建设银行或大连银行,再编写一个商业银行,让程序输出 8000 元存在商业银行 8 年零 236 天的利息。【知识点】1. 成员变量隐藏和方法重写;2. super 关键字。【实验指导】1. 当 super 调用被隐藏的方法时,该方法中出现的成员变量是被子类隐藏的成员变量或继承的成员变量。Java 程序设计 实验四:继承、多态与接口 2015-2016 学年第一学期第 6 页 共 13 页2. 子类不继承父类的构造方法,因此,子类在其构造方法中需使用 super 来调用父类的构造方法,而且 super 必须是子类构造方法中的头一条语句,即如果在在子类的构造方法中,没有明显地写出 super 关键字来调用父类的某个构造方法,那么默认有“super( );”。3. 类中定义多个构造方法时,建议包括一个不带参数的构造方法,以便子类可以省略“super( );”。【学生解答】(1)商业银行的程序代码:class Bankint savedMoney;int year;double interest;public double computerInterest()interest = year*0.035*savedMoney;return interest;class BusinessBank extends Bankdouble year;public double computerInterest()su
《14401048方萍3班实验4》由会员第***分享,可在线阅读,更多相关《14401048方萍3班实验4》请在金锄头文库上搜索。