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.结果

在这里插入图片描述


总结

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

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

幻兽帕鲁开服教程——游戏

幻兽帕鲁开服教程——游戏 1. 安装服务器2. 服务器配置调整3. 运行环境Microsoft Visual C Runtime4. 加入服务器 这是研究开服时顺手写的笔记,也方便后来者。 如果你熟悉你所使用的操作系统的话,windows和linux应该区别不大。 1. 安装服务器 1.安装ste…

计算机组成原理 指令流水线

文章目录 指令流水线指令流水线的概念流水线性能分析流水线的吞吐率流水线的加速比流水线的效率 影响流水线的因素结构相关 (资源冲突)数据相关 (数据冲突)控制相关 (控制冲突) 流水线分类超量流水线 指令流水线 #mermaid-svg-sWaRASMFAvh8sLJk {font-family:"trebuchet m…

[小程序]页面事件

一、下拉刷新 1.开启和配置 小程序中开启下拉刷新的方式有两种: ①全局开启下来刷新 在app.json的window节点中,设置enablePullDownRefresh设为ture。 ②局部开启下来刷新 在页面对应的json文件的的window节点中,设置enablePullDownRefresh设…

服务器反复自动重启/死机的原因

服务器需要全年不间断地运行,而且它还承载各种应用程序。很多用户在租用服务器的时候会遇到各类问题,本文写的是服务器自动重启/死机可能会出现的原因及解决办法~ 1.电源是否接触不良 首先,第一步就是检查插头是否插紧,检查电源插…

flink基础概念之什么是时间语义

什么是时间语义 Flink支持三种不同的时间语义,以便处理流式数据中的事件时间、处理时间和摄入时间。 1. 处理时间(Processing Time) 处理时间的概念非常简单,就是指执行处理操作的机器的系统时间。 在这种时间语义下处理窗口非…

C++——数组、多维数组、简单排序、模板类vector

个人简介 👀个人主页: 前端杂货铺 🙋‍♂️学习方向: 主攻前端方向,正逐渐往全干发展 📃个人状态: 研发工程师,现效力于中国工业软件事业 🚀人生格言: 积跬步…

C语言通过MSXML6.0读写XML文件(同时支持char[]和wchar_t[]字符数组)

开发环境:Visual Studio 2010 运行环境:Windows XP SP3 第一节 读取XML文件(使用wchar_t[]字符数组) 读取XML文件可使用IXMLDOMDocument_load函数。 /* 这个程序只能在C编译器下编译成功, 请确保源文件的扩展名为c */ #define …

AWTK 开源串口屏开发(7) - 屏幕保护

现代屏幕其实并不需要屏幕保护,不过屏幕保护程序会衍生一些其它用途。比如: 保护隐私。长时间不操作,通过动画或者其它方式隐藏屏幕内容。数据安全。长时间不操作,需要输入密码才能恢复。美观/广告。长时间不操作,显示…

Linux的IO文件操作和文件系统

前要:本次我想给您带来关于 IO 和文件的知识,而文件在本系列中分为内存上的文件和磁盘上的文件。 1.文件概念 1.1.文件读写 在谈及系统接口之前,我们先来从 C 语言的角度来谈及一些前要知识,以辅助我们后续来理解系统 IO。 我们…

如何优化SQL查询性能?解开你的数据库瓶颈之谜!

目录 1、前言 2、创建索引 2.1 确保表的主键和外键都有索引 2.2 根据查询条件创建适当的索引 2.3 避免在索引列上进行类型转换或函数操作 3、合理设计数据库架构 3.1 表的拆分和归并,避免不必要的数据冗余 3.2 使用适当的数据类型和字段长度&#xff0…

JMeter实操入门之登录

JMeter实操入门之登录 前言初级-无变量的登录线程组取样器-HTTP请求 进阶-定义变量的登录用户定义的变量获取JSON返回的数据-tokentoken设置全局变量 前言 安装及环境配置教程可移步:JMeter安装与配置环境 本篇文章针对小白进一步的认识及运用JMeter,围绕…

Microsoft Visual C++ RunTime怎么下载?

64位下载链接 下载好程序后双击,勾选“我同意许可条款和条件”,然后点击“安装” 安装完成后点击“关闭”即可 感谢您的阅读与关注,服务器大本营助您成为更专业的服务器管理员!

一文了解【完全合作关系】下的【多智能体强化学习】

处于完全合作关系的多智能体的利益一致,获得的奖励相同,有共同的目标。比如多个工业机器人协同装配汽车,他们的目标是相同的,都希望把汽车装好。 在多智能体系统中,一个智能体未必能观测到全局状态 S。设第 i 号智能体…

文心一言 VS 讯飞星火 VS chatgpt (183)-- 算法导论13.4 7题

七、用go语言,假设用 RB-INSERT 将一个结点 x 插入一棵红黑树,紧接着又用 RB-DELETE 将它从树中删除。结果的红黑树与初始的红黑树是否一样?证明你的答案。 文心一言: 首先,我们需要明确RB-INSERT和RB-DELETE的基本操…

阿里云国外服务器多少钱一个月?24元/月

阿里云国外服务器优惠活动「全球云服务器精选特惠」,国外服务器租用价格24元一个月起,免备案适合搭建网站,部署独立站等业务场景,阿里云服务器网aliyunfuwuqi.com分享阿里云国外服务器优惠活动: 全球云服务器精选特惠…

云服务器定价_云服务器价格_云主机计费模式_腾讯云

腾讯云服务器租用价格表:轻量应用服务器2核2G3M价格62元一年、2核2G4M价格118元一年,540元三年、2核4G5M带宽218元一年,2核4G5M带宽756元三年、轻量4核8G12M服务器446元一年、646元15个月,云服务器CVM S5实例2核2G配置280.8元一年…

UE5 - Polycam扫描文件导入插件

Polycam是利用Gaussian Splatting进行3D重建的3D扫描相关软件,其对应有UE引擎的插件(Plugin_XV3dGS)可以把相关格式的文件导入到引擎; 首先Polycam的官网为:My Captures | Polycam 可以下载各种用户扫描文件&#xff…

java数据结构与算法刷题-----LeetCode485. 最大连续 1 的个数

java数据结构与算法刷题目录(剑指Offer、LeetCode、ACM)-----主目录-----持续更新(进不去说明我没写完):https://blog.csdn.net/grd_java/article/details/123063846 文章目录 1. 法一,双指针2. 法二:变量计数 1. 法一…

【开源】基于JAVA语言的CRM客户管理系统

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块三、系统设计3.1 用例设计3.2 E-R 图设计3.3 数据库设计3.3.1 客户表3.3.2 商品表3.3.3 客户跟踪表3.3.4 客户消费表3.3.5 系统角色表 四、系统展示五、核心代码5.1 查询客户5.2 新增客户跟踪记录5.3 新增客户消费订单5.4 查…

JVM(上)

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