super和this

相同点:

1.都是Java中的关键字
2.都只可以在非静态方法中使用
3.在构造方法中使用必须是第一条语句并且二者不可以同时存在

不同点:

1.this是当前对象的引用,super是子类对象从父类继承下来部分成员的引用
2.在非静态成员方法中,this用来访问本类的方法和属性,super用来访问从父类继承下来的方法和属性
3.在构造方法中:this(...)用于调用本类构造方法,super(...)用于调用父类构造方法,两种调用不能同时在构造方法中出现

this

访问当前类的成员变量:

在方法或构造器中,当局部变量的名字与实例变量同名时,用 this 来区分。
public class Person {private String name;public Person(String name) {this.name = name;  // 使用 this 来区分参数 name 和实例变量 name}
}

调用当前类的构造器:

使用 this(...) 调用当前类的其他构造器(这个调用必须是构造器中的第一条语句)
public class Person {private String name;private int age;public Person(String name) {this(name, 0);  // 调用另一个构造器}public Person(String name, int age) {this.name = name;this.age = age;}
}

在非静态方法中引用当前对象:

将当前对象作为参数传递给其他方法

super

调用父类的构造器:

在子类的构造器中,可以使用 super(...) 调用父类的构造器,且必须是构造器中的第一条语句。
若未显式调用,Java 会自动调用父类的无参构造器。
public class Employee extends Person {private double salary;public Employee(String name, int age, double salary) {super(name, age);  // 调用父类的构造器this.salary = salary;}
}

访问父类的成员变量和方法:

当子类有和父类同名的成员变量或方法时,可以用 super 来区分父类和子类的成员
public class Employee extends Person {private String name; // 与父类的 name 冲突public void printName() {System.out.println(super.name);  // 输出父类的 nameSystem.out.println(this.name);   // 输出子类的 name}@Overridepublic void work() {super.work();  // 调用父类的 work 方法System.out.println("Employee is working.");}
}

在这里插入图片描述

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

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

相关文章

CSS、Less、Scss

CSS、Less和SCSS都是用于描述网页外观的样式表语言,但它们各自具有不同的特点和功能。以下是对这三者的详细阐述及区别对比: 详细阐述 CSS(Cascading Style Sheets) 定义:CSS是一种用来表现HTML或XML等文件样式的计算机…

etcd之etcd分布式锁及事务(四)

1、etcd分布式锁及事务 1.1 前言 分布式锁是控制分布式系统之间同步访问共享资源的一种方式。在分布式系统中,常常需要协调他们的动作。如 果不同的系统或是同一个系统的不同主机之间共享了一个或一组资源,那么访问这些资源的时候,往往需要…

计算机网络-CSMA/CD协议笔记及“争用期”的理解

假设a和b是总线型网络上相距最远的两个节点。 从零这个时刻a节点会往信道上发送数据,那么a节点发送的第一个比特,需要经过τ这么长的时间,也就是经过一个单向的传播时延之后。它的这个信号才可以被最远的这个节点检测到。那如果b结点在τ这个…

六、深度剖析 Hadoop 分布式文件系统(HDFS)的数据存储机制与读写流程

深度剖析 Hadoop 分布式文件系统(HDFS)的数据存储机制与读写流程 在当今大数据领域当中,Hadoop 分布式文件系统(HDFS)作为极为关键的核心组件之一,为海量规模的数据的存储以及处理构筑起了坚实无比的根基。…

android aild 传递多个参数, in ,out,inout

在 HIDL 和 AIDL 中,方法参数的传递方式有所不同。HIDL 使用 generates 关键字来表示方法的返回值,而 AIDL 使用 in、out 和 inout 关键字来表示参数的传递方向。 HIDL 中的 generates 在 HIDL 中,generates 关键字用于指定方法的返回值。例…

https://huggingface.co/上的模型无法用linux服务器clone怎么办(只需要稍微改一下网址,就可以切换到镜像下载)

问题描述: 在ubuntu系统上,使用如下命令,克隆仓库,报无法访问错误: git clone https://huggingface.co/distilbert/distilroberta-base通用解决方案: 把下面部分更换: https://huggingface.…

内存泄漏的隐形陷阱:console.log

console.log 本身不会直接导致内存泄漏,但在特定的场景下,其使用方式可能间接引发内存泄漏问题,特别是在以下情况: 1. console.log 引用闭包或对象 console.log 输出的数据如果包含引用类型(例如:对象、数…

Python 基础语法 - 逻辑运算符

逻辑运算符是用来做逻辑计算的,就像之前用到的比较运算符 ,每一次比较其实就是一次条件判断,都会得到一个相应的True或者False的值,而逻辑运算符的操作数就是一个用来做条件判断的表达式或者变量 运算符说明and与or或not非 1. an…

【云原生】云原生与DevOps的结合:提升软件开发与交付的效率

目录 引言一、什么是云原生?1.1 云原生的核心原则1.2 云原生的技术栈1.3 云原生的优势 二、DevOps的概述2.1 DevOps的起源与发展2.2 DevOps文化的重要性2.3 DevOps工具链 三、云原生与DevOps的结合3.1 CI/CD的概念与重要性3.2 持续交付的实施策略3.3 整合CI/CD流程3…

数字IC后端实现Innovus |给各种IP子模块添加port buffer和antenna diode万能脚本

我们之前分享过在hierarchical flow后端实现中为了确保顶层flatten时timing signoff和physical signoff看到的情况和模块级看到的情况一致,我们会在模块io port添加io port buffer(主要是timing,antenna一致性)。实际上在芯片级我…

PSINS工具箱函数介绍——inserrplot

关于工具箱 i n s e r r p l o t inserrplot in

一个关于@JsonIgnore的isxxx()问题

一个关于JsonIgnore的问题 版本:2.13.5 <dependency><groupId>com.fasterxml.jackson.core</groupId><artifactId>jackson-databind</artifactId><optional>true</optional></dependency>代码&#xff1a; Data public clas…

多源BFS问题(1)_01矩阵

个人主页&#xff1a;C忠实粉丝 欢迎 点赞&#x1f44d; 收藏✨ 留言✉ 加关注&#x1f493;本文由 C忠实粉丝 原创 多源BFS问题(1)_01矩阵 收录于专栏【经典算法练习】 本专栏旨在分享学习算法的一点学习笔记&#xff0c;欢迎大家在评论区交流讨论&#x1f48c; 目录 1. 题…

el-select实现模糊搜索、远端搜索

el-select实现模糊搜索、远端搜索 实现代码&#xff1a; <template><div class"item-select-wrapper"><el-select v-model"value1" filterable"filterable" :disabled"disabled" remote"remote" clearable…

前端请求格式

1.multipart/form-data格式发送请求参数 什么时候用&#xff1a; 当后端API要求以表单的形式接收数据时&#xff0c;比如<input type"text" name"username">和<input type"password" name"password">&#xff0c;这些数据…

Java案例——屏蔽信息

首先这次的案例需要用到substring方法&#xff0c;先了解一下&#xff1a; 首先我们来加密一下电话号码&#xff1b; package String; public class Demo_06 {public static void main(String[] args) {// 定义一个电话号码字符串String phoneNumber"13111112598"…

精选:HR招聘管理工具Top5使用体验

作为企业招聘者&#xff0c;如何在选择中找到开启高效招聘之门的钥匙&#xff0c;成为了每一位企业招聘管理者必须面对的难题&#xff0c;在面对市场上琳琅满目的招聘工具&#xff0c;你是否也曾感到无头绪&#xff0c;不知所措&#xff1f;每个工具都声称自己拥有独特的优势和…

【MySQL】JDBC的连接

目录 一. 具体操作如下 1.注册驱动 二.实操 JDBC&#xff08;Java DataBase Connectivity&#xff09;java 数据库连接&#xff0c;是 JavaEE 平台下的技术规范&#xff0c;其定义了在 Java 语言中连接数据&#xff0c;执行 SQL 语句的标准&#xff0c;可以为多种关系数据库…

二叉树的链式表示及实现(实验6--作业)

一、功能概述 这段 C 代码实现了二叉树的一系列操作&#xff0c;包括创建二叉树、前序遍历、中序遍历、后序遍历、层次遍历、中序非递归遍历、求二叉树深度、交换左右子树、统计节点个数以及销毁二叉树等功能。 二、主要数据结构和类型定义 BiTNode结构体表示二叉树的节点&a…

三维测量与建模笔记 - 2.1 坐标转换基础

2D坐标变换 平移可以看做是对原始的x和y加上了一个偏移&#xff0c;也可以理解为按照给定的平移向量进行移动。 缩放变换&#xff0c;本质是对x&#xff0c;y乘上一个缩放系数。 综合缩放、旋转、平移 矩阵乘法的顺序会对结果有影响&#xff0c;需要注意。 2D欧氏变换 2D欧式…