super和this关键字

2023-11-17

一、super关键字的应用场景

1.    访问父类的成员变量

2.    访问父类的构造函数

3.    访问父类的方法

二、super关键字的使用

class Animal {
protected String name;    //注意:若限定符是private,子类无法使用super关键字访问父类成员变量

protected int id;

public Animal(String name, int id) {
this.name = name;    //参数与成员变量同名,成员变量被覆盖,用this访问成员变量
this.id = id;
}
public Animal(){
this("未知",0);    //默认不带参数的构造方法,this调用另一个构造方法,若没有别的构造方法,会报错
}
public void eat() {
System.out.println(name + ":正在吃" + "  id:" + id);
}
public void sleep() {
System.out.println(name + ":正在睡" + "  id:" + id);
}
public void introduction() {
System.out.println("大家好我是:" + name + "  id:" + id);
}
}
class Penguin extends Animal {
private String sex;
public Penguin(String name, int id, String sex) {
super(name, id);    //super访问父类构造函数
this.sex = sex;
}
public void sleep(){
super.sleep();    //super访问父类方法
System.out.println(name + ":正在睡" + "  id:" + id + "  性别:" + sex);
}
}


class Mouse extends Animal{
private String sex;
public Mouse(String name, int id, String sex){
super(name,id);     //super访问父类构造函数,只能放到第一行
this.sex = sex;

}

public void introduction(){
System.out.println("大家好我是:" + super.name + "  id:" + super.id + "  性别:" + sex);
}    //super访问父类成员变量,注意父类成员变量限定符。
}
public class ExtendsTest {
public static void main(String[] args) {
// TODO Auto-generated method stub
Penguin p1 = new Penguin("Tonny", 1000, "帅哥");
Mouse p2 = new Mouse("Juny", 1001, "美女");
p1.eat();
p2.sleep();
p1.introduction();
p2.introduction();
p1.sleep();
}

}

输出结果:

Tonny:正在吃  id:1000
Juny:正在睡  id:1001
大家好我是:Tonny  id:1000
大家好我是:Juny  id:1001  性别:美女
Tonny:正在睡  id:1000

Tonny:正在睡  id:1000  性别:帅哥

三、总结

问题一:

如果开发者自定义了一个类,没有显示的进行类的继承,那么该类中成员函数是否可以使用super关健健字?

答:可以,每个类都继承了超类Object,此时super访问的是Object类。

注意:super访问父类构造函数,只能放到第一行

子类使用super关键字访问父类非private的成员变量,构造函数,方法。

四、参考资料
this和super用法参考如下博客:

http://blog.51cto.com/lavasoft/18886

《JAVA编程思想》


本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

super和this关键字 的相关文章

  • java字符串基础操作

    1 字符串的特点 java lang String使用了final修饰 不能被继承 字符串底层封装了字符数组及针对字符数组的操作算法 字符串一旦创建 对象内容永远无法改变 但字符串引用 可以重新赋值 Java字符串在内存中采用Unicode
  • Swagger3 注解使用(Open API 3.0)

    文章目录 前言 一 swagger 3 的使用 Swagger SpringFox 3 0 相关特性 SpringDoc 二 从 spring fox 迁移到 springdoc 三 使用 swagger3 注解代替 swagger2 的
  • 【一】第一个java程序详解

    第一个java程序详解 一 前言 二 创建并编写java源代码的文件 创建java源代码文件 更改文件后缀 java代码的结构 三 编译执行 编译 执行 四 总结 五 附 java关键字 一 前言 通过之前上一节 开篇 Java语言介绍及环
  • mysql如何一秒插入10万条数据

    当我们需要批量插入或者更新记录时 可以采用Java的批量更新机制 该机制允许多条语句甚至一次性提交给数据库处理 通常情况下比一句一提交处理更有效率 jdbc处理批量提交有三个方法 需要注意的是 这三种方法都要和PreparedStateme
  • 动力节点老杜java基础视频笔记第一章 学前准备 (1)

    课堂截图 为什么使用截图工具 在听课的过程中 有的时候老师操作的比较快 通过截图的方式将老师的操作保存下来 以便后期的操作 另外截图之后的图片也可以用于笔记的记录 在笔记当中最好采用图文并茂的方式 这样更加利于知识的回顾 使用哪个截图工具
  • java中的file.encoding属性到底由什么决定?

    首先先上一段代码 public class PropertiesTest public static void main String args System out println file encoding System getProp
  • 对象数组题目 Student类

    package object oriented02 对象数组题目 定义类的Student 包含三个属性 学号为number 年级为state int 成绩为score int 创建20个学生对象 学号为1到20 年级和成绩都是随机产生 问题
  • java Map集合

    目录 一 介绍 二 HashMap 三 TreeMap 四 LinkedHashMap 一 介绍 Java中的Map是一种键值对的集合数据类型 用于存储无序的 不重复的键值对 它提供了快速的查找和访问功能 可以根据键来获取值 常见的Map实
  • javaSE进阶1之static用法

    JavaSE进阶 静态关键字 static static关键字的作用 成员变量分类 静态成员变量 实例成员变量 static修饰成员变量内存原理 static 修饰成员方法的基本用法 成员方法的分类 static修饰成员方法内存原理 sta
  • ThreadLocal学习

    1 threadLocal图解 java lang ThreadLocal类实现了线程的本地存储 ThreadLocal的内部实现 ThreadLocal的内部实现包括一个类似HashMap的对象 这里称之ThreadLocalMap Th
  • Java中的IO流如何理解——精简

    目录 引言 缓冲流 字节缓冲流 字符缓冲流 转换流 字符输入转换流 字符输出转换流 序列化和反序列化 对象序列化 对象反序列化 打印流 Properties 引言 通过前面的简单学习 我们已经能够大致了解了关于文件的操作 但是能够明显感受到
  • 《编写高质量代码:改善Java程序的151个建议》读书笔记

    编写高质量代码 改善Java程序的151个建议 秦小波 67个笔记 前言 本书附带有大量的源码 下载地址见华章网站www hzbook com 建议11 养成良好习惯 显式声明UID SerialVersionUID 也叫做流标识符 Str
  • Java 泛型 T,E,K,V,?

    泛型带来的好处 在没有泛型的情况的下 通过对类型 Object 的引用来实现参数的 任意化 任意化 带来的缺点是要做显式的强制类型转换 而这种转换是要求开发者对实际参数类型可以预知的情况下进行的 对于强制类型转换错误的情况 编译器可能不提示
  • JAVA--GUI(2)--布局

    布局 为了更好适应不同平台而引入的概念 Java的布局管理器是一个实现了LayoutManager接口的实例 用户无法设置setLocation 这些方法 如果想自己设置则需要取消布局管理器 采用布局管理器 边界布局 顺序布局 网格布局 卡
  • SM2加解密、签名验签

    导论 SM2是国家密码管理局于2010年12月17日发布的椭圆曲线公钥密码算法 在我们国家商用密码体系中被用来替换RSA算法 国产SM2算法 是基于ECC的 但二者在签名验签 加密解密过程中或许有些许区别 目前鄙人还不太清楚 后期有机会的话
  • 设计模式(2)

    2 2 结构型模式 结构型模式一共有七种 其中 适配器模式和装饰模式统称为包装模式 装饰模式和代理模式的类图基本相同 但目的不同 这些有相似目的或者有相似结构的模式需要对其概念辨析清楚 才能较好地掌握 下面将对结构型模式分别进行介绍 2 2
  • 将Enum枚举转成Map,List结构

    JAVA枚举功能强大 感觉就像是一种简化版的类对象 可以有构造方法 可以重载 可以继承接口等等 JAVA枚举在实际开发中应用相当频繁 以下几个封装方法在实际开发中可能用到 将枚举类转化为Map以及List结构的一些操作方法 首先 新建一个枚
  • 如何做单元测试

    如何做单元测试 一 定义 二 为什么要做单元测试 三 单元测试用例 四 阿里单元测试规约 五 测试框架的使用 Junit 下面以Junit4 为例来介绍 1 1 什么是Junit 1 2 为何使用Junit 1 3 Junit的快速入门 导
  • Java处理SSH-免密登录

    前提 需要测试主机之间能够免密 配置ssh请自行百度 jar包 旧版 com jcraft jsch 仅支持老版的密钥格式 旧版本 RSA
  • java连接oracle出现ORA-12505错误

    问题 sqlplus可以连接 但java连接报错 ORA 12505 ORA 12505 TNS listener does not currently know of SID given in connect descr 解析 原因 数据

随机推荐

  • 6、USRP【入门软件无线电(SDR)】PySDR:使用 Python 的 SDR 和 DSP 指南

    因为设备不同 本教程未实测 仅作为USRP参考 在本章中 我们将学习如何使用UHD Python API通过USRP控制和接收 传输信号 USRP是由Ettus Research 现为NI的一部分 制造的一系列SDR 我们将讨论 Pytho
  • Gbps/KW

    Gbps 衡量交换机的数据交换能力 传输速度为每秒1000兆位 即1Gbps
  • node封装传formdata数据的接口(多文件上传)

    前文 这个星期的主要完成的东西我想就是多文件上传了 这也是我第一次封装传formdata数据类型的数据 因为也是刚学不久node 很多东西都是要自己摸索的 关于这个多文件上传我也是查阅了不少的博客 也是问了学长 最后问题才得以解决 关于接口
  • 企业性能测试成熟度

    影响性能测试成熟度的5个内容项 1 性能测试流程规范 性能需求型模式 测试执行启动基本无规划 缺少标准流程规范 测试资产无法复用 测试结果无总结和沉淀性能常态化模式下流程规范 gt 企业内部不同部门 各个团队共同制定并执行达成一致的性能测试
  • 两数之和 暴力美学 哈希表

    1 两数之和 给定一个整数数组 nums 和一个整数目标值 target 请你在该数组中找出 和为目标值 的那 两个 整数 并返回它们的数组下标 leetcode 你可以假设每种输入只会对应一个答案 但是 数组中同一个元素在答案里不能重复出
  • 常见模拟电路设计 一(含仿真):方波、三角波、正弦波的互相发生

    FPGA最近有些整累了 给大家开个模拟电路设计的坑 内含干货 请放心食用 一 总体设计方案 二 单元电路设计和原理说明 2 1方波发生电路 波形发生电路可以由集成运放芯片构成运算电路来实现 第一步的方波发生电路 可以由滞回比较器和RC电路构
  • midjourney上线slack,国内也能用上啦!mjslackbot

    Mjslackbot 国内免费免魔法的原版midjourney 跟discord上的操作一模一样 在频道中描述你的关键词 既可生成精美的图案 手把手教学 1 注册Slack https slack com intl zh cn 注册成功后会
  • 解决word页码混乱并使页码从指定页开始

    解决word页码混乱并使页码从指定页开始 1 解决word页码混乱 页码混乱是由于误加了分节符导致的结果 导致页码不按照物理顺序排序 因此 我们在大纲模式下删除所有分节符 重排页码 2 从指定页重排页码 在指定页页眉位置点击布局 选择分隔符
  • Kafka3.0.0版本——消费者(消费者组案例)

    目录 一 消费者组案例 1 1 案例需求 1 2 案例代码 1 2 1 消费者1代码 1 2 2 消费者2代码 1 2 3 消费者3代码 1 2 4 生产者代码 1 3 测试 一 消费者组案例 1 1 案例需求 测试同一个主题的分区数据 只
  • cmake(三十二)Cmake之find_package指令

    一 cmake帮助文档 find package命令详解 1 help command list cmake 内置命令 列表 2 help comamnd
  • 使用LogHub进行日志实时采集

    日志服务LogHub功能提供日志数据实时采集与消费 其中实时采集功能支持30 种手段 这里简单介绍下各场景的接入方式 数据采集一般有两种方式 区别如下 我们这里主要讨论通过LogHub流式导入 实时 采集 方式 优势 劣势 例子 批量导入
  • QSS-Qt样式表一

    QSS即Qt StyleSheet Qt样式表 的简称 是一种用来自定义控件外观的强大机制 QSS可以让我们的程序界面更加漂亮 每条QSS样式都由两部分组成 1 选择器 该部分指定要美化的控件 2 声明 该部分指定要在控件上使用的属性 声明
  • 一直在说高并发,多少QPS才算高并发?

    高并发的四个角度 只说并发不提高可用就是耍流氓 可以从四个角度讨论这个问题 首先是无状态前端机器不足以承载请求流量 需要进行水平扩展 一般QPS是千级 然后是关系型数据库无法承载读取或写入峰值 需要数据库横向扩展或引入nosql 一般是千到
  • XShell连接ubuntu20.04.LTS

    1 下载Xshell XShell官方下载地址 打开XSHELL官方下载地址 我们可以选择 家庭和学校用户的免费许可证 输入邮箱之后即可获得下载链接 安装非常简单 跟着提示进行即可 2 连接ubuntu 2 1 查看ubuntu的ip地址
  • Vue 父子组件通信v-model .sync修饰符

    一 v model简化父子组件通信 v model是什么 v model 是Vue框架的一种内置的API指令 本质是一种语法糖写法 它负责监听用户的输入事件以更新数据 并对一些极端场景进行一些特殊处理 v model实现表单的双向绑定
  • 算法:回文链表

    234 回文链表 给你一个单链表的头节点 head 请你判断该链表是否为回文链表 如果是 返回 true 否则 返回 false 示例 1 输入 head 1 2 2 1 输出 true 示例 2 输入 head 1 2 输出 false
  • ReID专栏(三) 注意力的应用

    前言 本文中提出了一种用于行人重识别的注意感知特征学习方法 该方法由一个部分注意分支 PAB 和一个整体注意分支 HAB 组成 并与基础再识别特征提取器进行了联合优化 由于这两个分支建立在主干网络上 因此没有为ReID特征提取引入额外的结构
  • 客户管理系统CRM表格版,含销售合同客户关系维护等功能

    客户管理系统CRM表格版 含销售合同客户关系维护等功能 系统由EXCEL开发 绿色安全 简单好用 送VBA宏插件编号 139653845009471设计师儿
  • 来自国际大厂Cloudflare的免费项目cloudflared

    在此之前 大家可以先去看看项目 https github com cloudflare cloudflared 事先声明 本人使用Ubuntu2204系统搭建 理论上适合Debian系Linux系统 Redhat系需要修改相关命令 其他系统
  • super和this关键字

    一 super关键字的应用场景 1 访问父类的成员变量 2 访问父类的构造函数 3 访问父类的方法 二 super关键字的使用 class Animal protected String name 注意 若限定符是private 子类无法使