Java面向对象——多态作业

【0基础学java】教学日志:javaSE-面向对象6-面向对象前4章上机作业点评,主要涉及继承、封装、多态三个章节的内容 目录 一、面向对象第一章上机作业参考答案(略) 二、面向对象第二章上机作业参考答案: 三、面向对象第三章上机作业参考答案: 1、上机练习1已在第三章博客中编写,请参考; 2、上机练习2 四、面向对象第四章作业参考答案: 1、上机练习—使用多态实现主人领养宠物并与宠物玩耍 2、上机练习——计算一次租赁多辆汽车的总租金 3、上机练习——购置新车 五、答疑,主要是关于Object对象、抽象类的使用、instanceof的使用、向上转型和向下转型的理解。 1、Object对象的使用 2、i. 阅读详情

练习
一、选择

  1. 下列代码的运行结果为:C
    在这里插入图片描述
    A. 我是动物
    B. 编译错误
    C. 我是动物
    我是老虎
    我是哈士奇
    D. 我是动物 我是老虎 我是哈士奇
  2. 创建一个父类Animal,一个子类Cat,Animal three = new Cat();不是 C
    A. 向上转型
    B. 自动转型
    C. 向下转型
    D. 隐式转型
  3. 下列代码怎么修改可以使其成功运行:A
    在这里插入图片描述
    A. 删除掉标注3位置的one.fly( )
    B. 标注1的Animal one=new Bird()修改为Animal one=new Animal()
    C. 删除掉标注2位置的one.eat( )
    D. 标注1的Animal one=new Bird()修改为Bird one=new Animal()
  4. 下列关于instanceof说法不正确的是 C
    A. instanceof 的返回值为true和false
    B. instanceof可以用来判断对象是否可满足某个特定类型
    C. 可以通过“A instanceof B"表示 A 类可以转型为B类
    D. instanceof可放在if语句的条件表达式中
  5. 已知父类Person,子类Man。判断类Person的对象person1是否满足类Man的实例特征,正确的语句为 A
    在这里插入图片描述
    A. if (person1 instanceof Man)
    B. if (man1 instanceof Person)
    C. if (Person instanceof man1)
    D. if (Man instanceof person1)
  6. 在Java中,多态的实现不仅能减少编码的工作量,还能大大提高程序的可维护性及可扩展性,那么实现多态的步骤包括以下几个方面除了 B
    A. 子类重写父类的方法
    B. 子类方法设置为final类型
    C. 定义方法时,把父类类型作为参数类型;调用方法时,把父类或子类的对象作为参数传入方法
    D. 运行时,根据实际创建的对象类型动态决定使用哪个方法
  7. 下面代码运行测试后,出现的结果是 D
    在这里插入图片描述
    A. 编译错误,错误位置在第一行
    B. 编译错误,错误位置在第二行
    C. 第一行和第二行都运行成功,输出结果为
    儿子
    女儿
    D. 编译成功,但运行报错,错误位置在第二行
  8. 下面代码怎么修改可以编译时不报错(多选)A D
    在这里插入图片描述
    A. 在位置一处将SpeedBike类设为抽象类,同时将位置2处的speedup也设为抽象方法
    B. 将位置一中的public改为final
    C. 将位置二中speedup()方法改为抽象方法
    D. 将位置二中speedup()方法中加入方法的实现
  9. 下列选项中,关于Java的抽象类和抽象方法说法不正确的是 B
    A. 抽象类和抽象方法都通过abstract关键字来修饰
    B. 抽象类中必须包含抽象方法
    C. 抽象方法只有方法声明,没有方法实现
    D. 子类如果不重写父类所有的抽象方法,则必须设置为抽象类
    二、编程
  10. 应用继承和多态的思想,编写动物类,成员方法是动物叫声。写三个具体的类(猫、狗、羊),它们都是动物类的子类,并重写父类的成员方法。编写测试类,随机产生三种具体动物,调用叫声这个方法。
    程序参考运行效果如图所示:
    任务分析:
    1.定义一个父类Animal类
    属性:kind(种类)
    方法:创建带参(kind为参数)构造方法
    创建cry():void方法
  11.  编写三个具体的子类Cat类、Dog类、Sheep类
    

分别重写父类中的 cry() 方法,输出信息分别为
Cat类:小猫的叫声:喵喵喵~~~
Dog类:小狗的叫声:汪汪汪~~~
Sheep类:小羊的叫声:咩咩咩~~~
3. 编写测试类,首先生成长度为5的父类对象数组,然后通过循环依次向数组中存入数据,现设定存储规则为:
a) 每次随机产生一个0~2的正整数
b) 若数值为 0,则生成一个 Cat 类的对象,存入数组
c) 若数值为 1,则生成一个 Dog 类的对象,存入数组
d) 若数值为 2,则生成一个 Sheep 类的对象,存入数组
最后循环输出数组成员,并分别调用 cry() 方法。

/**
 * 动物类
 * @author ananwanwl
 *
 */
public abstract class Animal {
	private String kind;
	//无参构造
	public Animal(){
		
	}
	//有参构造
	public Animal(String kind) {
		super();
		this.kind = kind;
	}


	public String getKind() {
		return kind;
	}

	public void setKind(String kind) {
		this.kind = kind;
	}
	//抽象方法
	public abstract void cry();
	
}

/**
 * 猫类
 * @author ananwanwl
 *
 */
public class Cat extends Animal {
	//重写父类叫声方法
	@Override
	public void cry() {
		// TODO Auto-generated method stub
		System.out.println("小猫的叫声:喵喵喵~~~");
	}

}
/**
 * 狗类
 * @author ananwanwl
 *
 */
public class Dog extends Animal {
	//重写父类叫声方法
	@Override
	public void cry() {
		// TODO Auto-generated method stub
		System.out.println("小狗的叫声:汪汪汪~~~");

	}

}

/**
 * 羊类
 * @author ananwanwl
 *
 */
public class Sheep extends Animal {
	//重写父类叫声方法
	@Override
	public void cry() {
		System.out.println("小羊的叫声:咩咩咩~~~");
	}
}

/**
 * 测试类
 */
import java.util.Random;

public class Test {
	public static void main(String[] args) {
		Animal[] animal=new Animal[5];
		Random rand = new Random();
		for(int i=0;i<animal.length;i++){
			int temp=rand.nextInt(3);//随机生成0-2的正整数
			if(temp==0){
				animal[i]=new Cat();
			}
			if(temp==1){
				animal[i]=new Dog();
			}
			if(temp==2){
				animal[i]=new Sheep();
			}
		}
		for(Animal n:animal){
			n.cry();
		}
	}

}
java练习题(面向对象前两天练习作业(继承多态接口和抽象类)) 1. 【编号:1001】一位面向对象的程序员小李,在编程过程中需要描述和处理个人信息,于是定义了类Person,如下所示: public class Person { private String name; // 姓名 private int age; // 年龄 private String birthday; // 生日 /* getters and... 阅读详情

相关推荐

射频收发机(RF Transceiver)

2,既然原来外差的思路是把声音频率的信号,通过混频搬移到高频电磁波频率,那对高频率信号放大的时候,是不是也可以先在比较低的射频频率进行放大,然后再通过频率搬移的方式,将放大后的信号搬移到高频率呢?频率搬移过程中,中间预先设定的固定射频频率被称为“中频”(中间频率,IF,Intermediate Frequency),由于这个频率超出了声音可听的范围,是“超声波”(supersonic),所以被命名为“超外差”(Super-Heterodyne)。混频后的信号在0频率附近,可能会发生DC偏移。

2301_77317229的博客 1122

20200724Java多态练习

一、选择 1.下列代码的运行结果为: C A. 我是动物 B. 编译错误 C. 我是动物 我是老虎 我是哈士奇 D. 我是动物 我是老虎 我是哈士奇 2.创建一个父类Animal,一个子类Cat,Animal three = new Cat();不是 C A. 向上转型 B. 自动转型 C. 向下转型 D. 隐式转型 3.下列代码怎么修改可以使其成功运行:A A. 删除掉标注3位置的one.fly( ) B. 标注1的Animal one=new Bird()修改为Animal one=new Anim

buruore的博客 884

FPGA实战:用Verilog实现Costas环载波同步(附Vivado2019.2仿真步骤)

本文详细介绍了如何在FPGA上使用Verilog实现Costas环载波同步,包括核心原理、Vivado2019.2工程配置、代码实现及仿真验证。通过正交下变频、相位误差检测和环路滤波等关键模块的设计,帮助开发者掌握数字通信系统中的载波同步技术,并提供了实用的调试和优化技巧。

k0l1m2n3o的博客 134

java面向对象之——继承

面向对象的特征之一 ——继承 那什么是继承呢?     继承是从已有的类中派生出新的类。 继承怎么用?     在类名后加extends关键字+被继承的类名表示继承关系 继承有什么用吗?     通俗的来说,子类可以吸收父类类的属性和行为, 并能扩展新的能力。 继承的语法有什么基本要求吗?    1.JAVA不支持多继承,单继承使JAVA的继承关系很简单,一个类只能有一个 直接父类。 &n

qq_53999369的博客 1285

从ADS到SystemVue:当简单链路预算不够用时,我的射频系统级仿真方案升级实录

本文详细介绍了从ADS到SystemVue的射频系统级仿真升级路径,重点分析了基础链路预算在多端口元件和复杂场景下的局限性,并提供了SystemVue在非线性系统验证和跨域协同分析中的优势。通过实际案例展示了如何平滑迁移工具链,提升仿真精度和效率,适用于5G、毫米波雷达等现代射频系统设计。

weixin_34233974的博客 343

语音识别(ASR)-- Kaldi 学习笔记

语音识别(ASR)-- Kaldi学习笔记语音识别简介GMM-HMM基本原理DNN-HMM(基于神经网络)KaldiKaldi架构简介Kaldi在Windows下的安装工具准备编译OpenFST配置PortAudio配置KaldiKaldi目录说明 语音识别简介 语音识别(Speech Recognition)技术,也被称为自动语音识别(Automatic Speech Recognition, ASR)、计算机语音识别(Computer Speech Recognition)或是语音转文本识别(Spee

qq_43318971的博客 4847

【Python作业】定义动物类Animal,...编写猫类Cat...

代码 class Animal(object): """定义动物类""" name = "" time = 0 def __init__(self, name, time): self.setName(name) self.setTime(time) def setName(self, name): self.name = name def setTime(self, time): if n

微信公众号: 后端码匠 1万+

空天大模型详解

空天大模型是指面向空天信息领域(如卫星遥感、导航、气象等)设计的多模态人工智能模型,能够处理海量遥感数据、多传感器信息及跨时空分析任务。多模态融合:整合可见光、雷达、热红外、多光谱等多源遥感数据,构建统一表征空间,例如“空天·灵眸”3.0版支持航空、卫星及无人机数据的自动化解译。轻量化与高效推理:针对星载计算场景,采用分层量化、跨模态蒸馏技术压缩模型参数(如JigonGPT从1.02B压缩至0.23B,性能仅牺牲5.2%)18,并通过热传导架构提升计算速度2.4倍。神经符号结合。

zxy98的专栏 1567

Java多态的理解与应用

多态的概念 面向对象的程序设计语言的三大特征:封装,继承,多态 封装:根据功能将属性和方法封装到一个类中 继承:实现代码重复利用,避免相同作用代码重复编写(类似函数) 多态:(以封装和继承为前提)多态体现为父类引用变量可以指向子类对象 多态的定义与使用格式: 定义格式:父类类型 变量名=new 子类类型(); 多态的向上转型和向下转型: 向上转型:相当于多态的定义 使用格式:父类类型 变量名=new 子类类型(); 向下转型:使用强制类型转换的格式,将父类引用类型转为子类引用各类型 使用格式:子类类型

weixin_51068932的博客 648

ArcGIS Pro SDK (二十五)工作流管理器

【代码】ArcGIS Pro SDK (二十五)工作流管理器。

Winemonk 494

YOLOv9改进策略目录 | 包含卷积、主干、检测头、注意力机制、Neck上百种创新机制

Hello,各位读者们好本专栏自开设两个月以来已经更新改进教程50余篇其中包含RepNCSPELAN4、主干、检测头、注意力机制、Neck多种结构上创新,也有损失函数和一些细节点上的创新。同时本人一些讲解视频和包含我所有创新的YOLOv9文档并不能在优快云上传(所有的创新点都经过我的测试是可用的,得到该文件之后大家可以随意组合使用),所以会建立群的形式在内上传我的文件和视频我也会在群内不定期和大家交流回答大家问题,同时定期会更新一些文章的创新点(经过我融合测试后的,先到先得)。

Snu77的博客 1万+

多态的理解和使用

多态的理解和使用

m0_62084473的博客 496

《UDS协议从入门到精通》系列——图解0x85:控制DTC的设置

如何让ECU停止或恢复DTC状态位更新?有哪些注意点?图解+示例教你快速上手UDS 0x85服务!!

车载系统攻城狮 3863

java面向对象作业_java面向对象第二阶段作业总结

0.前言:本次博客主要是针对Java面向对象第二阶段(5-8周)的作业总结与反思,主要以PTA上的练习和课堂作业为主,进行总结。1.作业过程总结本次总结针对的是三次pta作业。①总结三次作业之间的知识迭代关系:第一次作业主要是对Java中的字符串的应用,和对应用正则表达式对输入字符串数据进行合法性校验的考察,还有图形类的继承的应用。可以说这是我们第一次接触正则表达式的相关知识,并且应用在一个对于我...

weixin_35750483的博客 441

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

java面向对象作业--类的继承和多态

(3)类的设计遵循开闭原则,即:主方法中可以创建新的动物类,如Bird类(在if和else 之间添加else if语句块即可),且增加新类型的动物对象时,只需增加代码,不需修改已有代码的内容。(4)代码要符合常识,不能为了能产生上述结果而拼凑代码,例如:eat方法中输出“我在奔跑”等等是不允许的。请根据上述代码及运行结果,完成Animal、Horse、Goldfish三个类的定义(给出完整代码)。(2)类的设计要尽可能体现代码的可重用性,利用好面向对象的三大特性;(1)Animal必须是一个抽象类;

headonthemoon的博客 246

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

作业10 Java面向对象 - 封装、继承和多态

/ 声明并实例化一Person对象p// 给p中的属性赋值p.setName("张三");// 调用Person类中的talk()方法p.talk();// 在这里定义Person类return age;System.out.println("我是:"+name+",今年:"+age+"岁");// 实例化一个Cat对象,设置属性name和age,调用voice()和eat()方法,再打印出名字和年龄信息cat.name="大花猫";cat.age=6;

nianci602的博客 1148

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

Java第四次作业—面向对象高级特性(继承和多态)

Java第四次作业—面向对象高级特性(继承和多态) (一)学习总结 1.学习使用思维导图对Java面向对象编程的知识点(封装、继承和多态)进行总结。 2.阅读下面程序,分析是否能编译通过?如果不能,说明原因。应该如何修改?程序的运行结果是什么?为什么子类的构造方法在运行之前,必须调用父 类的构造方法?能不能反过来? 不能够编译通过,使用super关键字调用父类的构造方法需要将语句supe("He...

weixin_30624825的博客 292

Java第四次作业——面向对象高级特性(继承和多态)

Java第四次作业——面向对象高级特性(继承和多态) (一)学习总结 1.学习使用思维导图对Java面向对象编程的知识点(封装、继承和多态)进行总结。 2.阅读下面程序,分析是否能编译通过?如果不能,说明原因。应该如何修改?程序的运行结果是什么?为什么子类的构造方法在运行之前,必须调用父 类的构造方法?能不能反过来? class Grandparent { public G...

陈陈陈亚萌_的博客 478

Java第四次作业,面向对象高级特性(继承和多态)

Java第四次作业—面向对象高级特性(继承和多态) (一)学习总结 1.学习使用思维导图对Java面向对象编程的知识点(封装、继承和多态)进行总结。 2.阅读下面程序,分析是否能编译通过?如果不能,说明原因。应该如何修改?程序的运行结果是什么?为什么子类的构造方法在运行之前,必须调用父 类的构造方法?能不能反过来? 不能够编译通过,使用super关键字调用父类的构造方法需要将语句supe("He...

weixin_30622107的博客 208

java实践作业经验和收获_java 初学者 第二阶段作业编程总结及心得体会

0.前言第二阶段java作业同样跟第一阶段作业一样分为3次。第一次作业说实话我觉得是3次作业里面最难的,主要内容是跟正则表达式有关,还有类间关系的应用(关联、聚合、依赖、继承),字符串相关方法的调用等,都是需要我们自己去查资料看视频,所以说更难,里面有3个题目,一个是图形面积有关的,一个是用“蒙特卡罗方法”求圆周率,最难的就是第一题,水文数据校验和处理,说实话可能看懂题目都要费点劲。如下图第二次作...

weixin_32137855的博客 472

Java面向对象程序设计——0428上机作业(多态实验)

定义Employee类: 属性salary(工资) 定义salary的getter和setter 定义print,返回salary的值; 定义Manager为Employee的子类: 定义属性allowance; 定义构造方法,用参数给salary和allowance赋值。 定义print方法,返回salary与allowance的和。 在Demo类中编写main方法 定义Employee类的对象...

程序员本员 911

java if作业_19201528- JAVA所有作业总结

#0 前言本次作业是对本学期所有Java作业的总结,分析自己学会了哪些知识,还有哪些不足,以及以后需要改进的点。#1 作业过程总结1.所有作业之间的迭代关系:第一次作业:简单的if-else,for,while等基础语句知识。第二次作业:涉及到数组,Java的类,Java的方法等知识。第三次作业:类的封装性,类之间组合的关系。第五次作业:Java正则表达式,类的继承性。第六次作业:涉及到Java正...

weixin_42302142的博客 301

java编程心得_java 初学者 全阶段作业编程总结及心得体会

0.前言不知不觉,java学习就到了尾声,这个学期我们上的java专业课都是在网上进行的,不过我觉得自己java应该是学到蛮多东西的,没有因为在家学习就荒废了,因为这门语言很大可能就是我们以后工作要用的编程语言,上学期因为没有好好学C语言已经非常后悔了,所以学java的时候还是比较努力在学的。在这个学期的java学习中,我们到现在为止一共经历了三个大阶段,之前已经做了9次作业和写了2次的博客,不得...

weixin_42413624的博客 1021

Java第四次作业--面向对象高级特性(继承和多态)

一、学习要点 认真看书并查阅相关资料,掌握以下内容: 掌握类的继承概念和设计 掌握构造方法的继承原则 掌握方法重写 掌握super键字和final关键字 理解多态的概念,掌握通过方法重写和方法重载机制实现多态 掌握对象转型,掌握通过向上转型实现对象多态。 掌握简单抽象类的设计 二、作业要求 发布一篇随笔,主要包括以下几部分的内容: (一)学习总结 1.学习使用思维导图对Java面向对象编程...

weixin_34061042的博客 314
上一篇: Java面向对向继承
下一篇: Java面向对象-接口与内部类作业
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值