Java期末复习题之继承

news2025/2/23 14:19:45

点击返回标题->23年Java期末复习-CSDN博客


第1题.

设计一个学生类Student,其数据成员有name(姓名)、age(年龄)和degree(学位)。由Student类派生出本科生类Undergraduate和研究生类Graduate,本科生类Undergraduate增加成员specialty(专业),研究生类增加成员direction(研究方向)。每个类都有show()方法,用于输出数据成员信息。最后请输出下列信息:

public class Main {
    public static void main(String[] args) {
    	Undergraduate u1 = new Undergraduate("张三", 20, "本科", "通信");
    	Undergraduate u2 = new Undergraduate("李四", 21, "本科", "电子");
    	Graduate g1 = new Graduate("王五", 25, "硕士", "通信");
    	Graduate g2 = new Graduate("刘六", 36, "博士", "通信");
    	u1.show();
    	u2.show();
    	g1.show();
    	g2.show();
    }
}
abstract class Student{
	String name, degree;
	int age;
	abstract void show();//定义为抽象方法,Student也必须为抽象类
}
class Undergraduate extends Student{
	String specialty;

	Undergraduate(String name, int age, String degree, String specialty){//有参构造
		this.name = name;
		this.age = age;
		this.degree = degree;
		this.specialty = specialty;
	}
	@Override
	void show() {//实现父类抽象方法
		//格式化输出建议使用printf
		System.out.printf("姓名:%s\t年龄:%d\t学位%s\t专业:%s\n", 
				this.name, this.age, this.degree, this.specialty);
	}
}
class Graduate extends Student{
	String direction;
	
	Graduate(String name, int age, String degree, String direction){//有参构造
		this.name = name;
		this.age = age;
		this.degree = degree;
		this.direction = direction;
	}
	@Override
	void show() {//实现父类抽象方法
		//格式化输出建议使用printf
		System.out.printf("姓名:%s\t年龄:%d\t学位%s\t研究方向:%s\n", 
				this.name, this.age, this.degree, this.direction);
	}
}


第2题.

有工人、服务员、教师、科学家四种角色,其中服务员、工人只有月固定工资(元/月),教师除月固定工资外,还有课酬(元/节)。科学家除月固定工资外,还有科研激励奖(元/季度)。请通过继承设计出相应的类,将各种类型的员工的全年工资打印出来,并测试(张三、工人、4000元/月)、(李四、服务员、3500元/月)、(王五、教师、5000元/月、100元/节,200节/年)、(刘六、科学家、7000元/月、20000元/季度)。

public class Main{
	public static void main(String[] args) {
		profession p1 = new profession("张三", "工人", 4000);
		profession p2 = new profession("李四", "服务员", 3500);
		teacher t1 = new teacher("王五", "教师", 5000, 100, 200);
		scientist s1 = new scientist("刘六", "科学家", 7000, 20000);
		p1.show();
		p2.show();
		t1.show();
		s1.show();
	}
}
//有工人、服务员、教师、科学家四种角色,
//其中服务员、工人只有月固定工资(元/月),教师除月固定工资外,还有课酬(元/节)。科学家除月固定工资外,还有科研激励奖(元/季度)
//分析得出:工人和服务员可视作同类,下面命名为profession,教师和科学家可作为profession类的两个子类
class profession{
	String name, job;
	int salary;
	profession(){//无参构造供其子类的有参构造进行默认调用。(因为子类的构造方法如果没有用super关键字调用父类的构造方法,则会隐含一个super()去调用父类的无参构造)
		
	}
	profession(String name, String job, int salary){//有参构造
		this.name = name;
		this.job = job;
		this.salary = salary;
	}
	void show() {//此处不应定义为抽象方法,因为profession类存在需要示例化的对象(即工人或服务员)
		System.out.printf("%s、%s、%d元/月\n", this.name, this.job, this.salary);
	}
}
class teacher extends profession{
	int class_reward, class_nums;
	teacher(String name, String job, int salary, int class_reward, int class_nums){//有参构造
		this.name = name;
		this.job = job;
		this.salary = salary;
		this.class_reward = class_reward;
		this.class_nums = class_nums;
	}
	@Override
	void show() {
		System.out.printf("%s、%s、%d元/月、%d元/节, %d节/年\n", this.name, this.job, this.salary, this.class_reward, this.class_nums);
	}
	
}
class scientist extends profession{
	int research_reward;
	scientist(String name, String job, int salary, int research_reward){//有参构造
		this.name = name;
		this.job = job;
		this.salary = salary;
		this.research_reward = research_reward;
	}
	@Override
	void show() {
		System.out.printf("%s、%s、%d元/月、%d元/季度\n", this.name, this.job, this.salary, this.research_reward);
	}
	
}


第3题.

根据下述继承关系图,请完成父类Pet 、子类Dog、Penguin的设计,并写一个测试类,测试类中完成狗对象的创建与输出,企鹅对象的创建与输出。

public class Main{
	public static void main(String[] args) {
		//测试,对Dog类对象采取有参构造实例化并赋值,print()方法输出,对Penguin类对象采取无参构造实例化、setter方法赋值,getter方法配合printf输出
		Dog d = new Dog("小狗", 100, 20, "牧羊犬");
		d.print();
		
		Penguin p = new Penguin();
		p.setName("Q仔");
		p.setHealth(101);
		p.setLove(21);
		p.setSex("雄");
		System.out.printf("姓名:%s\t健康度:%d\t好感度:%d\t\t品系:%s\n", p.name, p.health, p.love, p.sex);
	}
}
abstract class Pet{
	String name;
	int health, love;
	
	abstract void print();
	abstract String getName();
	abstract int getHealth();
	abstract int getLove();
}
class Dog extends Pet{
	String strain;//品系
	Dog(){//无参构造
		
	}
	Dog(String name, int health, int love, String strain){//有参构造
		this.name = name;
		this.health = health;
		this.love = love;
		this.strain = strain;
	}
	void print() {
		System.out.printf("姓名:%s\t健康度:%d\t好感度:%d\t\t品系:%s\n", this.name, this.health, this.love, this.strain);
	}
	String getName() {
		// TODO Auto-generated method stub
		return this.name;
	}
	int getHealth() {
		// TODO Auto-generated method stub
		return this.health;
	}
	int getLove() {
		// TODO Auto-generated method stub
		return this.love;
	}
	
}
class Penguin extends Pet{
	String sex;//性别
	Penguin(){//无参构造
		
	}
	Penguin(String name, int health, int love, String sex){//有参构造
		this.name = name;
		this.health = health;
		this.love = love;
		this.sex = sex;
	}
	void print() {
		System.out.printf("姓名:%s\t健康度:%d\t好感度:%d\t性别:%s", this.name, this.health, this.love, this.sex);
		
	}
	String getName() {
		// TODO Auto-generated method stub
		return this.name;
	}
	int getHealth() {
		// TODO Auto-generated method stub
		return this.health;
	}
	int getLove() {
		// TODO Auto-generated method stub
		return this.love;
	}
	void setName(String name) {
		this.name = name;
	}
	void setHealth(int health) {
		this.health = health;
	}
	void setLove(int love) {
		this.love = love;
	}
	void setSex(String sex) {
		this.sex = sex;
	}
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1293968.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

vue-tree-color 组件实现组织架构图遇到的坑和解决方案以及实现

**1、前期工作可以先看看大佬的文章 **https://blog.csdn.net/Try_your_best_l/article/details/120173192?spm1001.2101.3001.6650.5&utm_mediumdistribute.pc_relevant.none-task-blog-2defaultCTRLISTRate-5-120173192-blog-128109597.235%5Ev38%5Epc_relevant_default…

案例精选|聚铭网络助力莱阳市人民医院打造合规性网络安全保障体系

莱阳市人民医院是一所集医疗、教学、科研、急救、康复、医养结合于一体的大型二级甲等综合性公立医院,占地总面积约3万平方米,建筑面积约7万平方米,设置科室48个,开放床位500张。医院先后获得山东省首批医养结合典型、山东省卒中防…

案例060:基于微信小程序考试系统

文末获取源码 开发语言:Java 框架:SSM JDK版本:JDK1.8 数据库:mysql 5.7 开发软件:eclipse/myeclipse/idea Maven包:Maven3.5.4 小程序框架:uniapp 小程序开发软件:HBuilder X 小程序…

学习设计模式的一个好网址

常用设计模式有哪些? (refactoringguru.cn)https://refactoringguru.cn/design-patterns

【Proteus仿真】【STM32单片机】蓝牙遥控小车

文章目录 一、功能简介二、软件设计三、实验现象联系作者 一、功能简介 本项目使用Proteus8仿真STM32单片机控制器,使LCD1602液晶,L298电机,直流电机,HC05/06蓝牙模块等。 主要功能: 系统运行后,LCD1602显…

Matlab 点云对称性检测

文章目录 一、简介二、实现代码三、实现效果参考文献一、简介 这是一个很有趣的功能,它的思路其实与ICP算法的思路有些相似: 首先,它会初始化两个旋转角度,即绕x轴旋转与绕y轴旋转,初始的过程是将点对称(镜像)过去,计算与匹配点之间的距离误差,误差最小者为最优初始值…

【Docker二】docker网络模式、网络通信、数据管理

目录 一、docker网络模式: 1、概述 2、docker网络实现原理: 3、docker的网络模式: 3.1、bridge模式: 3.2、host模式: 3.3、container模式: 3.4、none模式: 3.5、自定义网络模式&#xf…

Spring基于注解存储对象

小王学习录 前言基于注解存储对象Controller (控制器存储)Service (服务存储)Repository (仓库存储)Component (组件存储)Configuration (配置存储)Bean(方法注解) 前言 上一篇文章中已经介绍了在Spring中存储Bean和取Bean的方法. 而在 Spring 中想要更简单的存储和读取对象的…

【面试经典150 | 二叉树】从前序与中序遍历序列构造二叉树

文章目录 写在前面Tag题目来源题目解读解题思路方法一:递归 写在最后 写在前面 本专栏专注于分析与讲解【面试经典150】算法,两到三天更新一篇文章,欢迎催更…… 专栏内容以分析题目为主,并附带一些对于本题涉及到的数据结构等内容…

docker基本管理和概念

1、定义:一个开源的应用容器引擎,基于go语言开发,运行在liunx系统中的开源的、轻量级的“虚拟机” docker的容器技术可以在一台主机上轻松的为任何应用创建一个轻量级的、可移植的、自给自足的容器 docker的宿主机是liunx系统,集…

Halcon threshold_sub_pix (Operator)

read_image(Image,fabrik) threshold_sub_pix(Image,Border,35) dev_display(Border)Image是输入的原始图像,Threshold是设定的阈值,Width和Height是像素值计算区域的大小,ThresholdedRegion是经过分割后得到的二值化结果。 在对图像进行二值…

Stable Diffusion AI绘画系列【20】:美丽动人的雀羽婚纱风,你心动了吗?

《博主简介》 小伙伴们好,我是阿旭。专注于人工智能、AIGC、python、计算机视觉相关分享研究。 ✌更多学习资源,可关注公-仲-hao:【阿旭算法与机器学习】,共同学习交流~ 👍感谢小伙伴们点赞、关注! 《------往期经典推…

springboot基础(80):redis geo的应用

文章目录 前言redis GEO如何从地图上获取经纬度springboot 的相关方法调用准备redis服务器引用的依赖预设位置的keyGEOADD 添加位置GEORADIUS 获取指定经纬度附件的停车场(deprecated)GEORADIUS 获取指定成员附件的停车场(deprecated&#xf…

百面嵌入式专栏(岗位分析)大疆嵌入式工程师【通信/流媒体】

文章目录 一、岗位简介二、解析2.1、网络协议2.2、音视频传输算法2.3、大规模音视频会议或直播系统 三、简历 沉淀、分享、成长,让自己和他人都能有所收获!😄 📢本篇我们将对大疆嵌入式工程师【通信/流媒体】岗位进行分析 。 一、…

uni-app 微信小程序之好看的ui登录页面(三)

文章目录 1. 页面效果2. 页面样式代码 更多登录ui页面 uni-app 微信小程序之好看的ui登录页面(一) uni-app 微信小程序之好看的ui登录页面(二) uni-app 微信小程序之好看的ui登录页面(三) uni-app 微信小程…

Redis--12--Redis分布式锁的实现

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 Redis分布式锁最简单的实现如何避免死锁?锁被别人释放怎么办?锁过期时间不好评估怎么办?--看门狗分布式锁加入看门狗 redissonRe…

Rask AI引领革新,推出多扬声器口型同步技术,打造本地化内容新纪元

“ Rask AI是一个先进的AI驱动视频和音频本地化工具,旨在帮助内容创作者和公司快速、高效地将他们的视频转换成60多种语言。通过不断创新和改进产品功能,Rask AI正塑造着未来媒体产业的发展趋势。 ” 在多语种内容创作的新时代,Rask AI不断突…

C++新经典模板与泛型编程:将trait类模板用作模板参数

将trait类模板用作模板参数 template<typename T> struct SumFixedTraits;template<> struct SumFixedTraits<char> {using sumT int;static sumT initValue() {return 0;} };template<> struct SumFixedTraits<int> {using sumT __int64;sta…

【PTA-C语言】编程练习4 - 数组Ⅰ

如果代码存在问题&#xff0c;麻烦大家指正 ~ ~有帮助麻烦点个赞 ~ ~ 编程练习4 - 数组Ⅰ&#xff08;1~7&#xff09; 7-1 评委打分&#xff08;分数 10&#xff09;7-2 组合数的和&#xff08;分数 10&#xff09;7-3 找不同&#xff08;分数 15&#xff09;7-4 利用二分查找…

在前端开发中,什么是SEO(Search Engine Optimization)?如何优化网站的SEO?

聚沙成塔每天进步一点点 ⭐ 专栏简介 前端入门之旅&#xff1a;探索Web开发的奇妙世界 欢迎来到前端入门之旅&#xff01;感兴趣的可以订阅本专栏哦&#xff01;这个专栏是为那些对Web开发感兴趣、刚刚踏入前端领域的朋友们量身打造的。无论你是完全的新手还是有一些基础的开发…