Java语言程序设计——篇七(1)

在这里插入图片描述

     🌿🌿🌿跟随博主脚步,从这里开始→博主主页🌿🌿🌿

继承

  • 类的继承
    • 实战演练
  • 方法覆盖
    • 实战演练
  • 🍑super关键字
    • 实战演练
  • 调用父类的构造方法

类的继承

通过类的继承方式,可以不用编写相同的代码就能开发出新的类,即程序代码复用。
被继承的类称为父类或超类(superclass),由继承而得到的类称为子类(subclass)。
在这里插入图片描述
Java语言中类的继承是通过extends关键字来实现的,其格式如下:

class SubClass extends SuperClass{……}
  • 子类可以从父类那里继承所有非private的成员作为自己的成员。
  • 若无extends关键字,则该类默认为java.lang.Object类的子类。
  • 子类的每个对象也是父类的对象(“即是”性质),但父类对象不一定是子类的对象。
  • Java语言中不支持多重继承,所以一个类只能有一个直接父类。
  • 父类是所有子类的公共成员的集合,而每个子类则是父类的特殊化,是对公共成员变量和方法在功能、内涵方面的扩展和延伸。
  • 子类继承父类的成员变量和方法,同时还可修改、重写和添加父类的成员变量和方法。
  • Java语言中有一个名为java.lang.Object的特殊类,所有的类都是直接或间接地继承该类而得到的。

实战演练

【例】类的继承,创建Person类,再以该类为父类创建一个子类Employee。

public class Person {public String name;public int age;public Person(){}public Person(String name, int age){this.name = name;this.age = age;}public void sayHello(){System.out.println("My name is"+name);}
}
public class Employee extends Person {public double salary;public Employee(){}public Employee(double salary){this.salary = salary;}public Employee(String name,int age, double salary){super(name,age);this.salary = salary;}public double computeSalary(int hours, double rate){double salary = hours * rate;return this.salary + salary;}
}
public class EmployeeTest {public static void main(String[] args){Employee emp = new Employee("李菲菲",23,5000);System.out.println("姓名="+emp.name);System.out.println("年龄="+emp.age);emp.sayHello();System.out.println(emp.computeSalary(10, 50.0));}
}

运行结果:
在这里插入图片描述

方法覆盖

  • 覆盖是指在子类中,定义名称、参数个数与类型均与父类完全相同的方法,用以重写父类里同名方法的功能。(private方法不能覆盖、不能覆盖父类中声明static的方法,但可以继承)
  • 覆盖父类的方法:子类继承父类中所有可被访问的成员方法时,若子类的方法与父类的方法同名,则不能继承,此时子类的方法是覆盖父类的方法。
  • 在子类中覆盖方法时,可扩大父类中的方法权限,但不能缩小其权限。

实战演练

【例】子类的方法覆盖父类的方法sayHello()。

@Override//注解表示其后的方法必须是覆盖父类的方法
public void sayHello(){System.out.println("Hello, I am" + name);System.out.println("I am" + age);System.out.println("My salary is" + salary);
}

【例】父类与子类方法相同,但参数不同

public class Parent {public void display(int i){System.out.println(i);}
}
public class Child extends Parent{public void display(double i){System.out.println(i * 2);}
}
Child obj = new Child();
obj.display(10);//10
obj.display(10.0);//20.0

父类的display方法被子类重载了但未覆盖。

🍑super关键字

在子类中访问父类的成员

  • Super关键字:用来引用当前对象的父类对象
  • 使用super不但可以访问父类的构造方法,还可以访问父类的成员变量和成员方法。访问父类成员的格式如下:
  • super.变量名;
  • super.方法名;
在子类调用父类中被覆盖的方法:super.methodName([paramlist])
在子类中调用父类的构造方法super([paramlist])
在子类中访问父类中的被隐藏的成员变量super.variableName

实战演练

public class Parent {int x,y;public Parent(){System.out.println("创建父类对象");setXY(5,5);}public void setXY(int x,int y){this.x = x;this.y = y;}public void display(){System.out.println("x=" + x +",y=" + y);}
}
public class Child extends Parent{	int x,z;public Child(){this(10,10);}public Child(int x,int z){super();this.x = x;this.z = z;}public void display(){super.display();System.out.println("x=" + x +",y=" + y);
System.out.println("super.x="+super.x+",super.y="+super.y);}	
}

调用父类的构造方法

  • 调用父类的构造方法super(参数列表)语句必须写在子类构造方法的第一行。 super( )也可以重载。
  • 若没有super()来调用父类中的构造方法,则编译时在子类构造方法第一行自动加上super(),即调用父类中没有参数的构造方法。若此时父类中只定义了有参数的构造方法,则编译错误。
  • super()是从子类构造方法调用父类特定的构造方法;this()是调用本类的其他构造方法。两者都必须写在构造方法的第一行,因此无法同时存在同一个构造方法内。
    博主用心写,读者点关注,互动传真情,知识不迷路

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

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

相关文章

手机图片如何转化为word文档?分享3种好用的软件。

在数字化时代,手机已经成为我们生活中不可或缺的一部分。随着手机拍照功能的日益强大,我们常常用手机记录下重要的信息和瞬间。但你有没有遇到过这样的烦恼:如何将手机里的图片快速转化为可编辑的Word文档呢?今天,就为…

基于 G6 的交互式过滤镜:探索图谱数据的新视角

本文由ScriptEcho平台提供技术支持 项目地址:传送门 基于 G6 的交互式过滤镜:探索图谱数据的新视角 应用场景 交互式过滤镜是一种强大的工具,它允许用户通过聚焦于图谱中的特定区域来探索和分析数据。它在各种场景中都有应用,…

马来西亚外贸服务器租赁公网带宽费用和测速IP地址性能测试

云服务器马来西亚(吉隆坡)公网带宽租用费用,马来西亚地域按固定带宽计费1M价格22元1个月、按使用流量计费1GB流量费用是0.529元,马来西亚服务器测试IP地址速度如何?阿里云服务器网aliyunfuwuqi.com整理2024年最新马来西…

AS-V1000系统主要功能介绍:实现视频监控统一接入汇聚

目录 一、系统概述 1、平台简介 2、视频监控统一接入能力 3、功能介绍 二、功能说明 1. 视频监控统一接入汇聚 2. 视频存储、回放和堆叠 3. 实时监控与预警、定位 4. 信息共享与联动、分发 5. 远程监控、管理和控制 三、主要特点 1. 多协议多品牌支持 2. 大容量集…

MQ消息队列+Lua 脚本实现异步处理下单流程,将同步下单改为异步下单

回顾一下下单流程: 用户发起请求 会先请求Nginx,Nginx反向代理到Tomcat,而Tomcat中的程序,会进行串行工作, 分为以下几个操作: 1 查询优惠券 2 判断秒杀库存是否足够 3 查询订单 4 校验是否是一人一单 5 扣减库…

QT信号和信号槽

信号和信号槽 一.信号与槽1.信号和槽的概述1.2.信号的本质1.3.信号的本质 二.信号和槽的使用2.1 连接信号和槽connect()函数原型:参数的说明 三.自定义信号和槽3.1基本语法1.自定义信号槽的书写规范2、自定义槽函数书写规范3.发送信号 3.2带参数的信号和槽 四.信号与…

在VMware16版本中安装ubuntu22.04.4镜像以及ubuntu镜像文件下载,配置更改,安装常用软件

目录 一、Ubuntu镜像文件下载 二、Ubuntu安装过程 三、更换国内镜像 四、安装常用软件 1、编译工具 2、代码管理工具 一、Ubuntu镜像文件下载 1-1、官网https://ubuntu.com/download 1-2、镜像网站快速下载 官网下载速度慢的话可以直接百度各大学的镜像下载网站去下载&…

multiprocessing.Pool创建多进程,导致内存不断攀升的解决方法

问题 使用multiprocessing.Pool创建多进程时,每个进程占用内存不断攀升。 问题描述 原本每个子进程没有占用那么多内存: 第二次读取新一批数据,每个子进程都复制了之前的内存资源: 原因说明 实际上,multiprocessing…

【高可用】利用AOP实现数据库读写分离

最近项目中需要做【高可用】数据库读写分离相关的需求,特地整理了下关于读写分离的相关知识。项目中采用4台数据库:1个master,2个slave,1个readOnly,其中master数据库会自动定时同步到readOnly节点。可以通过中间件(Sh…

FastAPI(六十九)实战开发《在线课程学习系统》接口开发--修改密码

源码见:"fastapi_study_road-learning_system_online_courses: fastapi框架实战之--在线课程学习系统" 之前我们分享了FastAPI(六十八)实战开发《在线课程学习系统》接口开发--用户 个人信息接口开发。这次我们去分享实战开发《在线…

Redis集群的主从复制原理-全量复制和增量复制-哨兵机制

Redis集群的主从复制原理-全量复制和增量复制-哨兵机制 作用 数据备份 这一点直观,因为现在有很多节点,每个节点都保存了原始数据的备份. 读写分离 这一点主要是当发生读写的时候,读数据的操作大部分都会进入到从节点,而写数据的操作都会进入到主节点&…

ESP32CAM人工智能教学15

ESP32CAM人工智能教学15 Flask服务器TCP连接 小智利用Flask在计算机中创建一个虚拟的网页服务器服务器,让ESP32Cam通过WiFi连接,把摄像头拍摄到的图片发送到电脑中,并在电脑中保存成图片文件。 Flask是用Python编写的网页服务程序WebServer。…

逻辑回归推导

逻辑回归既可以看作是回归算法,也可以看做是分类算法。通常作为分类算法使用,只可以解决二分类问题。 在上述平面中,每个颜色代表一个类别,即有4个类别 将红色的做为一个类别,其他三个类别都统称为其他类别&#xff0…

现代化电商企业在行业竞争中关于数据采集API接口的应用分析||经验分享

及时准确:电商API接口能为品牌提供实时数据,这意味着企业可以即时获取最新的商品价格信息,避免因为信息延迟导致的决策失误。相较于手动采集,接口数据一般更为准确可靠。 效率提升:接口自动化采集大大提高了数据获取效…

Photoshop(PS) 抠图简单教程

目录 快速选择 魔棒 钢笔 橡皮擦 蒙版 通道 小结 可以发现,ps逐渐成为必备基础的办公软件。本文让ps新手轻松学会抠图。 快速选择 在抠图之前,先了解下选区的概念。ps中大多数的抠图操作都是基于选区的,先选区再Ctrl J提取选区。而快…

【深度】2024AI大模型算力芯片产业深度分析

人工智能算力基础设施成为我国数字经济高质量发展的重要战略部署,具有重大发展意义。 1)算力普适普惠化是大趋势,相关服务生态逐步构建。“东数西算”工程的实施,带动数据、算力跨域流动,实现产业跃升和区域平衡发展。…

谷粒商城实战笔记-46-商品服务-API-三级分类-配置网关路由与路径重写

文章目录 一,准备工作1,新增一级菜单2,新增二级菜单 二,前端树形界面开发1,开发分类展示组件 三,远程调用接口获取商品分类数据1,远程调用2,路由配置 错误记录 本节的主要内容&#…

【算法/训练】:动态规划

一、路径类 1. 字母收集 思路: 1、预处理 对输入的字符矩阵我们按照要求将其转换为数字分数,由于只能往下和往右走,因此走到(i,j)的位置要就是从(i - 1, j)往下走&#x…

MySQL 约束 (constraint)

文章目录 约束(constraint)列级约束和表级约束给约束起名字(constraint)非空约束(no null)检查约束(check)唯一性约束 (unique)主键约束 (primary key)主键分类单一主键复合主键主键自增 (auto_increment) 外键约束外什…

C++树形结构(总)

目录 一.基础: 1.概念: 2.定义: Ⅰ.树的相关基础术语: Ⅱ.树的层次: 3.树的性质: 二.存储思路: 1.结构体存储: 2.数组存储: 三.树的遍历模板: 四.…