使用Java实现面向对象编程2第二章继承上机实操手册.docx

上传人:lao****ou 文档编号:266342 上传时间:2023-07-07 格式:DOCX 页数:20 大小:109.02KB
下载 相关 举报
使用Java实现面向对象编程2第二章继承上机实操手册.docx_第1页
第1页 / 共20页
使用Java实现面向对象编程2第二章继承上机实操手册.docx_第2页
第2页 / 共20页
使用Java实现面向对象编程2第二章继承上机实操手册.docx_第3页
第3页 / 共20页
使用Java实现面向对象编程2第二章继承上机实操手册.docx_第4页
第4页 / 共20页
使用Java实现面向对象编程2第二章继承上机实操手册.docx_第5页
第5页 / 共20页
亲,该文档总共20页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《使用Java实现面向对象编程2第二章继承上机实操手册.docx》由会员分享,可在线阅读,更多相关《使用Java实现面向对象编程2第二章继承上机实操手册.docx(20页珍藏版)》请在第一文库网上搜索。

1、JAVAOOP第二章上机步骤上机练习一、a训练要点:继承 子类重写父类方法 理解继承中的初始化过程6需求说明: 优化电子宠物系统使用继承实现Dog类和Penguin类打印宠物信息实现思路:步骤:1、将第一章的工程导入2、在cn.jbit.epet包下新建ch02包在此包下,创建Pet类,定义属性和方法,定义Printo方法,定义无参和有参构造方法 package cn.jbit. epet.ch02; / *宠物类,狗狗和企鹅的父类。*更多资源可在阿升老师的【与或非】公号中自行查找* author*/public class Pet private String name = ”无名氏”;/

2、昵称private int health = 100; / 健康值private int love = 0; / 亲密度* 无参构造方法。* /public Pet () this . health = 95;SyStem. out.PrintIn (执行宠物的无参构造方法。;* 有参构造方法。* param name 昵称* /public Pet(String name) this . name = name;SVStem.out. PrintIn (执行宠物的有参构造方法。“); public String getName() return name;public void setNam

3、e(String name) this . name = name;PUbliC int getHealth() return health;)public void SetHealth(int health) this. health = health;)public int getLove() return love;)public void setLove(int love) this . love = love;* 输出宠物信息。* /public void print () SyStem. out.Println (”宠物的自白:n我的名字叫 + this.name + ”,我的健康

4、值是+ this.health + ,我和主人的亲密程度是“ + this. Iove + 3、创建DOg类,继承Pet类,增加Strain (品种)属性及相应的getter/set方法。及有参构 造package cn.jbit. epet.ch02;/ * * 狗狗类,宠物的子类。* author* /public class Dog extends Pet private String strain; / 品种/ * * 有参构造方法。* pa ram name 昵称* param strain 品种* /public Dog(String name, String strain) su

5、per (name) ; /此处不能使用this . name=name; this. strain = strain;)public String getStrain () return strain;)public void setstrain(String strain) this . strain = strain;4、创建PengUin类,继承Pet类,增加SeX属性及相应的get/set方法。及有参构造 package cn.jbit. epet.ch02; / * 企鹅类,宠物的子类。* author* /public class Penguin extends Pet priv

6、ate String sex; / 性别 / * * 有参构造方法。* param name 昵称* param sex 性别* /public Penguin(String name, String sex) super(name);this. sex = sex;public String getSex () return sex;)public void setSex(String sex) this. sex = sex;5、在test包中创建测试类TeStChO201.java。在本类中创建Dog、PengUin对象,打印出相应 宠物信息。package cn.jbit. epet.

7、 test;import cn.jbit. epet.ch02. Dog;import cn.jbit. epet.ch02. Penguin;import cn.jbit. epet.ch02. Pet;/ * 测试类,测试类的继承。* author* /public class Testch0201 public static void main(String args) / 1、创建宠物对象Petl并输出信息Pet pet = new Pet (,PlPl*);pet.print ();/ 2、创建狗狗对象dog并输出信息Dog dog = new Dog(“欧欧“,“雪娜瑞”);dog

8、.print ();/ 3、创建企鹅对象也并输出信息Penguin pgn = new Penguin (utt, ,Q妹”); pgn.print ();运行后的结果:执行宠物的有参构造方法。宠物的自白:我的名字叫贝贝,我的健康值是100, 执行宠物的有参构造方法。宠物的自白:我和主人的亲密程度是0。我的名字叫欧欧,我的健康值是100, 执行宠物的有参构造方法。宠物的自白:我和主人的亲密程度是0。我的名字叫楠楠,我的健康值是IO0,我和主人的亲密程度是0。6、在DOg类和PengUin类中增加Pringo方法,实现子类对父类方法的覆盖 修改Dog类在其中加入如下方法*重写父类的Print方法

9、。*/public void print () super .print () ; /调用父类的Print方法System. out .println (,ffi一只+ this. strain +);7、运行测试类TeStChO201.java,打印宠物信息,观察不同之处。之前的运行结果执行宠物的有参构造方法。宠物的自白:我的名字叫贝贝,我的健康值是:100, 执行宠物的有参构造方法。宠物的自白:我和主人的亲密程度是0。我的名字叫欧欧,我的健康值是IO0, 执行宠物的有参构造方法。宠物的自白:我和主人的亲密程度是0。我的名字叫楠楠,我的健康值是100,我和主人的亲密程度是0。修改之后的运行结

10、果执行宠物的有参构造方法。宠物的自白:我的名字叫贝贝,我的健康值是Io0,我和主人的亲密程度是0。执行宠物的有参构造方法。宠物的自白:我的名字叫欧欧,我的健康值是Io0,我和主人的亲密程度是0。我是一只雪娜瑞。执行宠物的有参构造方法。宠物的自白:我的名字叫楠楠,我的健康值是100,我和主人的亲密程度是0。上机练习二a训练要点: 抽象类的定义和继承 抽象方法定义和重写O需求说明: 修改Pet类为抽象类修改Pet类的PrilItO方法为抽象方法 输出Dog信息实现思路1、修改Pet类为抽象类。public abstract class Pet 注意:public class abstract Pe

11、t这样是不对的修改完成后我们会发现在测试类中的PetPet = new Pet( “贝贝”);报错了,意思是说抽象类不 能被实例化。(在这里我们先把这句话注释掉)2、修改Pet类的PrintO为抽象方法将原的方法如下,* 输出宠物信息。* /public void print () SySten. out.printin (宠物的自白:n我的名字叫 + this.name + ”,我的健康值是+ this.health + ”,我和主人的亲密程度是“ + this. love + ,);)修改成现在这样的* 输出宠物信息。*/public abstract void print ();注意:抽

12、象方法不能有方法体修改完成后我们会发现在Dog类中S叩er.prim(); 调用父类的print方法 已经报错了,意思 是说不能直接的调用这个抽象的方法。3、Dog类继承Pet类,实现Printo方法在这里我们先把Dog子类中的原有Primo方法删除掉看看是什么现象?我们会看到这个类报错了,意思是说这个子类必须实现父类中的一个抽象方法这是告诉大家一个小技巧,点类上的那个小红叉,这后点击第一个“add”系统会为我们自 己将父类中的抽象方法重写到这个子类中来。点完成自动生成如下代码。0Overridepublic void print () / TODO Auto-generated method

13、 stub)完整的方法代码如下:* 重写父类的Print方法。* /Overridepublic void print () SyStem. out.printin (”宠物的自白:n我的名字叫 +super.getName () + ”,我的健康值是“ + super.getHealth () + ”,我和主人的亲密程度是+ super. getLove () + , o u);System, out .printIn (,-H , + this. strain +,);接下来,同理,我们点击PengUin类的小红叉,点击“add”,让它也重写父类的打印方法 完成代码如下;* 重写父类的Pr

14、intI方法。* /Overridepublic void print () SyStem. out.printin (”宠物的自白:n我的名字叫 + super. getName () + ,我的健康值是” + super. getHealth () + ”,我和主人的亲密程度是+ super. getLove () + ”。”);SyStem. out.printin (我的性别是:+ this, sex +,);接下来运行测试类,结果如下执行宠物的有参构造方法。宠物的自白:我的名字叫欧欧,我的健康值是100,我和主人的亲密程度是0。我是一只雪娜瑞。执行宠物的有参构造方法。宠物的自白:我的名字叫楠楠,我的健康值是100,我和主人的亲密程度是0。 我的性别是:Q妹。4,注释掉DOg类中Erinty方法,运行测试类查看错误信息执行宠物的有参构造方法。Exception in thread ,main java. lang.Error: Unresolved compilation problem:The type Dog must implement the inherited abstract method Pet.print()at cn.jbit.epet.ch02.Do

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 应用文档 > 汇报材料

copyright@ 2008-2022 001doc.com网站版权所有   

经营许可证编号:宁ICP备2022001085号

本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有,必要时第一文库网拥有上传用户文档的转载和下载权。第一文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知第一文库网,我们立即给予删除!



客服