Java--类继承

news2025/1/24 21:49:17

主要内容

  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.coloradmin.cn/o/1401042.html

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

相关文章

2.RHCSA启动配置

rht-clearcourse 0 #重置练习环境 rht-setcourse rh134 #切换CSA练习环境 cat /etc/rht #查看当前环境 virt-manager #打开KVM控制台 rht-vmctl start classroom #必做,start all不会包含classroom,需…

Appium 环境配置

Appium 是一个开源的、跨平台的测试框架,可以用来测试 Native App、混合应用、移动 Web 应用(H5 应用)等,也是当下互联网企业实现移动自动化测试的重要工具。Appium 坚持的测试理念: •无需用户对 App 进行任何修改或…

神策 CDP 获评中国软件评测中心「优秀大数据产品」

近日,中国软件评测中心在第十三届软件大会上揭晓了「第十五期优秀大数据产品、解决方案和案例测评结果」。神策数据基于客户旅程编排的客户数据平台(CDP)1.3.0 凭借出色的产品能力获评「优秀大数据产品」,并获得大数据基础设施类产…

[网络编程]UDP协议,基于UDP协议的回显服务器

目录 1.UDP协议介绍 2.UDP协议在Java中的类 2.1DatagramSocket类 2.2DatagramPacket 3.回显服务器 3.1Sever端 3.2Client端 1.UDP协议介绍 UDP协议是一种网络协议,它是无连接的,全双工,并且是面向数据报,不可靠的一种协议…

C语言实现简单的扫雷游戏

目录 1 -> test.c 2 -> game.c 3 -> game.h 1 -> test.c #define _CRT_SECURE_NO_WARNINGS 1#include "game.h"void menu() {printf("************************************\n");printf("********* 1.play ********\n&quo…

【51单片机】动态数码管

0、前言 参考: 普中51单片机开发攻略–A2.pdf 1、数码管介绍 上一章我们主要是介绍一位数码管的内部结构及控制原理。下面我们再来介 绍下多位数码管及动态显示原理的相关知识。 1.1 多位数码管简介 2、74HC245 和 74HC138 芯片介绍 2.1 74HC245 芯片简介 2.2 7…

JVM(上)

目录 一、JVM概述 一、JVM作用 二、JVM整体组成部分 二、JVM结构-类加载 一、类加载子系统概述 二、类加载过程 1.加载 2.链接 3.初始化(类加载过程中的初始化) 三、类加载器分类 大致分两类: 细致分类: 四、双亲委派机制 五、打…

线程和进程的区别(从JVM角度出发)

进程与线程的区别 线程具有许多传统进程所具有的特征,故又称为轻型进程(Light—Weight Process)或进程元;而把传统的进程称为重型进程(Heavy—Weight Process),它相当于只有一个线程的任务。在引入了线程的操作系统中,通常一个进…

【Godot4自学手册】第二节主人公设置

继续学习Godot,今天是第二节的内容,本节主要完成游戏玩家的设置,将玩家展现在场景中。 一、新建一个主场景 首先在场景面板中单击2D场景,如图。 这样我们就有了一个2D场景,我们将Node2D重新命名为“Main”&#xff…

使用Nginx和Fancyindex组合搭建文件下载站点详细教程

目录 简介 TIPS 1.下载Nginx 2. 安装Fancyindex和Nginx-Fancyindex-Theme模块 2.1 安装编译工具和依赖 2.2 下载Fancyindex和Nginx-Fancyindex-Theme 2.3 编译Nginx并包括Fancyindex 3. 配置Nginx 4.体验 4.1light主题 4.2dark主题 后记 简介 当使用Nginx和Fancyinde…

【轮式平衡机器人】——角度/速度/方向控制分析软件控制框架

轮式平衡机器人具有自不稳定性,可类比一级倒立摆系统的控制方法,常见有反馈线性化方法、非线性PID控制、自适应控制、自抗扰控制,还有改进的传统缺乏对外界干扰和参数改变鲁棒性的滑模变结构控制。我们采用较为简单的双闭环PID控制实现平衡模…

C++入门学习(九)浮点数

浮点型主要有两种: floatdouble 占用空间有效数字范围float4字节7位有有效数字double8字节15~16位有效数字 为什么float 有效数位 7 or 8 位,double 15 or 16 位? https://zhidao.baidu.com/question/1182732476020869219.htmlhttps://zhid…

Arduino开发实例-SDS011粉尘检测传感器驱动

SDS011粉尘检测传感器驱动 文章目录 SDS011粉尘检测传感器驱动1、SDS011介绍2、硬件准备及接线3、代码实现在本文中,将介绍如何使用 Arduino 动粉尘传感器 SDS011 制作空气质量监测系统。 1、SDS011介绍 粉尘本身根据它们的大小分为两类。 直径在2.5至10微米之间的称为粗颗粒…

【算法详解】力扣162.寻找峰值

​ 目录 一、题目描述二、思路分析 一、题目描述 力扣链接:力扣162.寻找峰值 峰值元素是指其值严格大于左右相邻值的元素。 给你一个整数数组 nums,找到峰值元素并返回其索引。数组可能包含多个峰值,在这种情况下,返回 任何一个…

【音视频】基于ffmpeg对视频的切割/合成/推流

背景 基于FFmpeg对视频进行切割、合成和推流的价值和意义在于它提供了一种高效、灵活且免费的方式来实现视频内容的定制、管理和分发。通过FFmpeg,用户可以轻松地剪辑视频片段,根据需要去除不必要的部分或提取特定时间段的内容,从而优化观看…

网络安全行业热门认证证书合集

网络安全认证证书,就和学历一样是敲门砖,拿到了可以用不到,但不能没有;技术大牛可以没有证书,但普通人不能没有。 1.初级入门: 就像学历在职场上展示一个人的基本素养一样,网络安全认证证书可以…

机器视觉技术与应用实战(BLOB分析)

我发现写blob分析(Binary Large Object)相应的处理函数的文章非常少。那就写一写关于blob分析相关的文章。 blob工具也叫做斑点工具,先对图像进行二值化,对图像中连通区域进行计算,计算几何特征。 BLOB分析功能: 1、…

磁盘分区机制

lsblk查看分区 Linux分区 挂载的经典案例 1. 虚拟机增加磁盘 点击这里,看我的这篇文章操作 添加之后,需要重启系统,不重启在系统里看不到新硬盘哦 出来了,但还没有分区 2. 分区 还没有格式化 3. 格式化磁盘 4. 挂载 5. 卸载…

【Linux系统编程】环境变量详解

文章目录 1. 环境变量的基本概念2. 如何理解呢?(测试PATH)2.1 切入点1查看具体的环境变量原因剖析常见环境变量 2.2 切入点2给PATH环境变量添加新路径将我们自己的命令拷贝到PATH已有路径里面 2.3 切入点3 3. 显示所有环境变量4. 测试HOME5. …

Elasticsearch8 集群搭建(二)配置篇:(1)节点和集群配置

安装完Elasticsearch后,需要对其进行配置,包括以下几部分:节点和集群配置、系统配置、安全配置。 此篇记录节点和集群配置的内容,后续将更新系统配置和安全配置。 节点和集群配置: 通过编辑/usr/local/elasticsearc…