Java--类继承

主要内容

  1. 学生类
  2. 交通工具类
  3. 圆类

一.学生类

具有属性:姓名、年龄、学位。由学生类派生出本科生类和研究生类,本科生类
增加属性:专业,研究生类增加属性:研究方向,每个类都有 show()方法,用于输出属性信息。

1.源代码

代码如下(示例):
package test;
class Student1{private String name;private int age;private String degree;public Student1(String name, int age, String degree) {super();//Java 的规定:子类继承父类,子类的构造方法必须调用//super()即父类的构造方法,而且必须放在构造方法的第一行this.name = name;this.age = age;this.degree = degree;}public Student1() {super();}public String getName() {return name;}public void setName(String name) {this.name = name;}public int getAge() {return age;}public void setAge(int age) {this.age = age;}public String getDegree() {return degree;}public void setDegree(String degree) {this.degree = degree;}public void show(){System.out.println("姓名:" + this.getName() + " 年龄:" + this.getAge() 
+ " 学位:" + this.getDegree() );}
}
class Undergraduate extends Student1{ //本科类private String specialty;//专业public String getSpecialty() {return specialty;}public void setSpecialty(String specialty) {this.specialty = specialty;}public Undergraduate(String name, int age, String degree, String specialty) 
{super(name, age, degree);this.specialty = specialty;}public void show(){System.out.println("姓名:" + this.getName() + " 年龄:" + this.getAge() 
+ " 学位:" + this.getDegree() + " 专业:" + this.getSpecialty());}
}
class Graduate extends Student1{ //研究生类private String direction;public String getDirection() {return direction;}public void setDirection(String direction) {this.direction = direction;}public Graduate(String name, int age, String degree, String direction) {super(name, age, degree);this.direction = direction;}public void show(){System.out.println("姓名:" + this.getName() + " 年龄:" + this.getAge() 
+ " 学位:" + this.getDegree() + " 研究方向:" + this.getDirection());}
}
public class student {public static void main(String[] args) {Undergraduate stu1=new Undergraduate("张三",20,"本科","物联网工程");Graduate stu2=new Graduate("李四",24,"硕士","计算机科学与技术");stu1.show();stu2.show();}
}

2.结果

在这里插入图片描述

二.交通工具类

属性包括:速度、类别、颜色;方法包括:设置速度、设置颜色、取得类别、取得颜色。
设计一个小车类继承自交通工具类,新增属性:座位数,增加设置和获取座位数的方法,创建小车类对象,为其设置新的颜色和速度,并显示所有属性 信息。

1.源代码

代码如下(示例):
class transport {private int speed;private String classify;private String color;transport(int speed,String classify,String color){this.speed=speed;this.classify=classify;this.color=color;}public int getspeed() {return speed;}public void setspeed(){this.speed=speed;}public String getclassify() {return classify;}public void setclassify(){this.classify=classify;}public String getcolor() {return color;}public void setcolor(){this.color=color;}public void show(){System.out.println("速度 "+this.getspeed()+" 类别
"+this.getclassify()+" 颜色 "+this.getcolor());}public static void main(String[] args) {car c1 = new car(100, "宝马", "白色", 4);c1.show();}
}
class car extends transport{private int number;public int getnumber() {return number;}public void setnumber(){this.number=number;}car(int speed,String classify,String color,int number){super(speed,classify,color);this.number=number;}public void show(){System.out.println("速度 "+this.getspeed()+" 类别
"+this.getclassify()+" 颜色 "+this.getcolor()+" 座位数
"+this.getnumber());}
}

2.结果

在这里插入图片描述

三.圆类

具有属性:圆心坐标 x和 y以及圆半径 r,具有设置和获取属性的方法,及计算周长和面积的方法。再设计一个圆柱体类继承自圆类,增加属性:高度,增加了设置和获取高度的方法,及计算表面积和计算体积的方法。创建圆柱体类对象,显示其所有属性信息,计算并显示其面积和体积。

1.源代码

代码如下(示例):
package test;
class Circle {double x;double y;double r;Circle(double x, double y, double r) {this.x = x;this.y = y;this.r = r;}public void setX(double x) {this.x = x;}public void setY(double y) {this.y = y;}public void setR(double r) {this.r = r;}public double getX() {return x;}public double getY() {return y;}public double getR() {return r;}public double area() {return r * r * Math.PI;}public double perimeter() {return 2 * r * Math.PI;}public void show() {System.out.print("x=" + x + ", y=" + y + ", Radius=" + r);}
}
class Cylinder extends Circle {double h;Cylinder(double x, double y, double r, double h) {super(x, y, r);this.h = h;}public void setH(double h) {this.h = h;}public double getH() {return h;}public double area() {return perimeter() * h + super.area() * 2;}public double volume() {return super.area() * h;}public static void main(String[] args) {Cylinder cylinder = new Cylinder(2, 3, 4, 5);cylinder.show();System.out.println(", Height=" + cylinder.getH());System.out.println("面积=" + cylinder.area());System.out.println("体积=" + cylinder.volume());}
}

2.结果

在这里插入图片描述


总结

以上是今天要讲的内容,学习了类继承。

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

TCP协议

⭐ 作者:小胡_不糊涂 🌱 作者主页:小胡_不糊涂的个人主页 📀 收录专栏:JavaEE 💖 持续更文,关注博主少走弯路,谢谢大家支持 💖 TCP 1. 报文结构2. 特性2.1 确认应答2.2 超…

Vue-30、Vue非单文件组件。

非单文件组件&#xff1a; 一个组件包含n个组件 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>非单文件组件</title><script type"text/javascript" src"https://cdn.jsde…

MSPM0L1306例程学习-UART部分(3)

MSPM0L1306例程学习系列 1.背景介绍 写在前边的话&#xff1a; 这个系列比较简单&#xff0c;主要是围绕TI官网给出的SDK例程进行讲解和注释。并没有针对模块的具体使用方法进行描述。所有的例程均来自MSPM0 SDK的安装包&#xff0c;具体可到官网下载并安装: https://www.ti…

【精选】中间件 tomcat漏洞复现

&#x1f36c; 博主介绍&#x1f468;‍&#x1f393; 博主介绍&#xff1a;大家好&#xff0c;我是 hacker-routing &#xff0c;很高兴认识大家~ ✨主攻领域&#xff1a;【渗透领域】【应急响应】 【python】 【VulnHub靶场复现】【面试分析】 &#x1f389;点赞➕评论➕收藏…

恭喜 Apache Dubbo 和 Nacos 荣获开放原子“2023年度生态开源项目”

12 月 16 日&#xff0c;以“一切为了开发者”为主题的开放原子开发者大会在江苏省无锡市开幕。江苏省工业和信息化厅厅长朱爱勋、中国开源软件推进联盟主席陆首群等领导和专家参加开幕式&#xff0c;工业和信息化部信息技术发展司副司长王威伟、江苏省工业和信息化厅副厅长池宇…

Linux 批量添加 known_hosts

前言 我们在做完linux ssh 免密登录后&#xff0c;通常会执行一些自动化任务&#xff08;比如启动Spark集群&#xff09;&#xff0c;也就是需要ssh到每台节点执行相同命令。但是有一个问题就是如果 known_hosts 文件中不存在这个ip的话&#xff0c;在第一次连接时会弹出确认公…

《Linux C编程实战》笔记:信号的捕捉和处理

Linux系统中对信号的处理主要由signal和sigaction函数来完成&#xff0c;另外还会介绍一个函数pause&#xff0c;它可以用来响应任何信号&#xff0c;不过不做任何处理 signal函数 #include <signal.h> void (*signal(int signum, void (*handler)(int)))(int);可以分解…

街机模拟游戏逆向工程(HACKROM)教程:[14]68K汇编-标志寄存器

在M68K中&#xff0c;有许多条件分支指令&#xff0c;和jmp指令一样也会修改PC达到程序跳转或分支的目的&#xff0c;不过这些会根据一些情况或状态来选择是否跳转。而在M68K中&#xff0c;有一个特别的寄存器来标记这些情况。 CCR(状态标志寄存器) CCR寄存器是用来保存一些对…

微服务不死 — 共享变量在策略引擎项目的落地详解

01 背景 1、共享变量的提出 前段时间&#xff0c;来自亚马逊 Prime Video 团队的一个案例研究在开发者社区中掀起了轩然大波。大体是这样一件事&#xff0c;作为一个流媒体平台&#xff0c;Prime Video每天都会向客户提供成千上万的直播流。为了确保客户无缝接收内容&#xff0…

【React】Redux的使用详解

文章目录 Redux的三大原则Redux官方图react-redux使用 1、创建store管理全局状态​ 2、在项目index.js根节点引用 3、 在需要使用redux的页面或者组件中&#xff0c;通过connect高阶组件映射到该组件的props中 redux中异步操作如何使用redux-thunkcombineReducers函数 Re…

MySQL---多表查询综合练习

创建dept表 CREATE TABLE dept ( deptno INT(2) NOT NULL COMMENT 部门编号, dname VARCHAR (15) COMMENT 部门名称, loc VARCHAR (20) COMMENT 地理位置 ); 添加dept表主键 mysql> alter table dept add primary key(deptno); Query OK, 0 rows affected (0.02 s…

Unity3D学习之UI系统——GUI

文章目录 1. 前言2. 工作原理和主要作用3. 基础控件3.1 重要参数及文本和按钮3.1.1 GUI 共同点3.1.2 文本控件3.1.3 按钮控件 3.2 多选框和单选框3.2.1 多选框3.2.2 单选框3.2.3 输入框3.2.4 拖动条 3.3 图片绘制和框3.3.1 图片3.3.2 框绘制 4 工具栏和选择网格4.1 工具栏4.2 选…

2024年网络安全比赛--内存取证(超详细)

一、竞赛时间 180分钟 共计3小时 二、竞赛阶段 竞赛阶段 任务阶段 竞赛任务 竞赛时间 分值 1.从内存文件中找到异常程序的进程,将进程的名称作为Flag值提交; 2.从内存文件中找到黑客将异常程序迁移后的进程编号,将迁移后的进程编号作为Flag值提交; 3.从内存文件中找到受害者…

【Docker篇】详细讲解容器相关命令

&#x1f38a;专栏【Docker】 &#x1f354;喜欢的诗句&#xff1a;更喜岷山千里雪 三军过后尽开颜。 &#x1f386;音乐分享【如愿】 &#x1f384;欢迎并且感谢大家指出小吉的问题&#x1f970; 文章目录 &#x1f6f8;容器&#x1f339;相关命令&#x1f354;案例⭐创建并运…

【C++】文件操作

文件操作 一、文本文件&#xff08;一&#xff09;写文件读文件 二、二进制文件&#xff08;一&#xff09;写文件&#xff08;二&#xff09;读文件 程序运行时产生的数据都属于临时数据&#xff0c;程序一旦运行结束都会被释放&#xff0c;通过文件可以将数据持久化&#xff…

SQL注入实战:盲注

盲注&#xff1a; 1、当攻击者利用SQL注入漏洞进行攻击时&#xff0c;有时候web应用程序会显示&#xff0c;后端数据库执行SQL查询返回的错误信息&#xff0c;这些信息能帮助进行SQL注入&#xff0c;但更多时候&#xff0c;数据库没有输出数据web页面&#xff0c;这是攻击者会…

【设计模式】责任连模式怎么用?

我将通过一个贴近现实的故事——请假审批流程&#xff0c;带你了解和掌握责任链模式。 什么是责任链模式&#xff1f; 责任链模式是一种行为设计模式&#xff0c;它让你可以避免将请求的发送者与接收者耦合在一起&#xff0c;让多个对象都有处理请求的机会将这个对象连成一条…

SpringMVC传递数据给前台

SpringMVC有三种方式将数据提供给前台 第一种 使用Request域 第二种 使用Model&#xff08;数据默认是存放在Request域中&#xff09; 与第一种方式其实是一致的 第三种 使用Map集合&#xff08;数据默认是存放在Request域中&#xff09;

力扣刷MySQL-第五弹(详细讲解)

&#x1f389;欢迎您来到我的MySQL基础复习专栏 ☆* o(≧▽≦)o *☆哈喽~我是小小恶斯法克&#x1f379; ✨博客主页&#xff1a;小小恶斯法克的博客 &#x1f388;该系列文章专栏&#xff1a;力扣刷题讲解-MySQL &#x1f379;文章作者技术和水平很有限&#xff0c;如果文中出…

Django随笔

关于Django的admin 1. 在url中把 from django.contrib import admin 重新解开 把path(admin/,admin.site.urls), 解开 2. 注册app&#xff0c;在配置文件中写 django.contrib.admin, 3.输入命令进行数据库迁移 Django国际化 配置文件中&#xff08;改成中文&#xff09; LA…