super()

2023-11-10

super()关键字

关键字的理解::

父类中定义了该方法,但是子类中重写了该方法,使用super来修饰这个方法,在调用的时候调用父类的方法。

super关键字的使用

​ 1、super理解为父类

  • 2、super可以用来调用:属性方法和构造器

  • 3、super的使用,调用属性和方法:

    3.1、我们可以在子类的方法或者构造器中,使用super.属性或者super.方法来显示调用父类中

    声明的属性和方法,但是通常情况下,我们习惯省略“super.”

    3.2、特殊情况,当子类和父类中定义了同名的属性时,我们在子类中调用父类中声明的属性,必须

    显示的使用“super.属性”的方式,表明调用的是父类中声明的属性,在实际的开发中是不会出现同名的属性

    其中调用了super方法之后,其子类还会向父类中进行寻找,如果父类找不到,再到父类的父类中来进行寻找。(super的追溯不仅限于直接父类)

  • 3.3、特殊情况下,当子类重写了父类中的方法之后,我们想在子类的方法中调用父类中被重写的方法时:

    则必须显示的使用“super.属性”的方式,表明调用的是父类中被重写的方法。

    想要在子类中调用被重写的父类的方法时,就会用super.

  • 4、使用super来调用构造器。

    4.1、我们可以在子类的构造器中显式的使用"super(形参列表)"的方式,调用父类中声明的指定构造器。

    4.2、"super(形参列表)"的使用,必须声明在子类构造器的首行。

    4.3、我们在类的构造器中,针对于"this(形参列表)"或者"super(形参列表)"只能时二选一。

    4.4、在构造器的首行,没有显式声明"this.(形参列表)“或者"super(形参列表)”,则默认调用的是父类中空参的构造器:super()

    4.5、一个类中有n个构造器,最多有n-1个使用了this,剩下一个用的就是super。

    在类的多个构造器中,至少有一个类的构造器中使用了”super(形参列表)“,调用了父类的构造器.

    下面是该代码的示例:

Person.java:

public class Person {
    String name;
    int age;
    int id=1001;//身份证
public Person(){
	System.out.println("我无处不在");
}
public Person(String name){
    this.name=name;
}
public Person(String name,int age){
    this(name);
    this.age=age;
}
public void eat(){
    System.out.println("人吃饭");
}
public void walk(){
    System.out.println("人走路");
}
}

student.java

//父类和子类出现了同名的属性情况下,这时的属性在内存中有两个id
public class student extends Person{
  String major;
  int id=1002;//学号
  public student(){

  }
  public student(String major){
      this.major=major;
  }
  public student(String name,int age,String major) {
//	  this.name=name;
//	  this.age=age;
	  super(name,age);//代表了调用父类方法中的参数,name和age
	  this.major=major;
  }

  @Override
  public void eat() {
      System.out.println("学生吃有营养的食物");
  }
  public void study(){
      System.out.println("学生学习知识");
      this.eat();
      super.eat();
      walk();
  }
  public void show(){
      System.out.println("name=" + this.name + ",age= "+ super.age);//super.age直接在自己的父类中来进行寻找
      System.out.println("id= " + id);//这里相当于圣罗了this.
      //想获取父类的id就是用super来调用
      System.out.println("id= " + super.id);

  }}

test.java:

public class Supertset {
 public static void main(String[] args) {
    student s=new student();
    s.show();
    s.study();
    student s1=new student("Tom",21,"IT");
    s1.show();
    System.out.println("***********");
    student s2=new student();

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

super() 的相关文章

随机推荐

  • python爬虫、某云音乐直链爬取

    1 通过浏览器抓包分析 寻找音乐直链所在的api F12打开开发者工具 然后随便播放一首 在Network的XHR中寻找歌曲的直链 最终发现在v1 csrf token 中返回了歌曲的地址 将链接在浏览器中打开 发现果然是该音乐的下载地址
  • 苹果MDM原理和实现过程

    最近一段时间鼓捣了苹果MDM MDM 顾名思义就是移动管理 现在这里咱就不谈啥是移动设备管理了 直接进入正题 苹果的MDM主要是通过苹果MDM服务器实现整体流程如下 1 首先客户端需要从后台服务器 服务器自己部署 下载苹果配置文件或者说描述
  • SpringBoot整合Shiro实现登录和注册功能

    首先 让我们介绍一下Shiro Shiro是一个非常流行的Java安全框架 它提供了身份验证 授权 加密和会话管理等安全功能 Shiro的一个重要特点是它的易用性和灵活性 它可以与各种Java框架 如Spring Spring Boot S
  • [NLP] transformers 使用指南

    严格意义上讲 transformers 并不是 PyTorch 的一部分 然而 transformers 与 PyTorch 或 TensorFlow 结合的太紧密了 而且可以把 transformers 看成是 PyTorch 或 Ten
  • 深度学习之数学基础(线性代数篇)

    2 1 标量 一个标量就是一个单独的数 一般用小写的的变量名称表示 2 2 向量 一个向量就是一列数 这些数是有序排列的 用过次序中的索引 我们可以确定每个单独的数 通常会赋予向量粗体的小写名称 当我们需要明确表示向量中的元素时 我们会将元
  • 【计算机网络】1.5——计算机网络的体系结构(网络分层模型)

    计算机网络的体系结构 概述 计算机网络的体系结构是计算机网络及其构建所应完成功能的精确定义 考题 不属于网络体系结构所描述的内容的是 A 网络的层次 B 每层使用的协议 C 协议的内部实现细节 D 每层必须完成的功能 这些功能的 实现细节
  • html + css实现点赞特效

    html
  • BUUCTF做题Upload-Labs记录pass-01~pass-10

    BUUCTF做题Upload Labs记录pass 01 pass 10 pass 01 前端验证后缀 传1 png 抓包改1 php 即可 蚁剑连 http your ip upload 1 php pass 02 验证content t
  • 前端部署项目到服务器

    1 通过xshell配置 1 1下载xshell 并安装 1 2配置root以及服务器地址 1 3配置nginx 路径设置为xxx xxx dist 1 4npm run build 将打包的dist文件放入配置路径下 1 5无法拖动文件处
  • 文本自动分类

    使用机器学习方法 做文档的自动分类 套路 1 根据每个文件 生成该文件的一个特征 2 根据特征 选择 分类器 进行文本分类 3 可选 根据 2 步结果 调整参数 特征等 示例 数据 搜狗文本分类语料库 精简版 分类器 朴素贝叶斯 编程语言
  • Windows防火墙配置(允许某个网段和部分IP访问某个端口)

    1 win R 2 gpedit msc 3 计算机配置 Windows设置 安全设置 IP安全策略 在本地计算机 4 创建IP安全策略 5 配置IP筛选器列表 筛选器操作 6 分配 https img2018 cnblogs com bl
  • Transformers使用教程

    模型参数下载 数据集查找 Transformers中文使用说明 Huggingface 超详细介绍 知乎 Hugging Face 的 Transformers 库快速入门 文档说明 Transformers 提供文本相关的预训练模型 Di
  • (一)linux系统安装——从0开始大数据开发实战:电影推荐系统(scala版)

    参考资源 厦大实验室博客http dblab xmu edu cn blog 大数据基础编程 实验和案例教程 林子雨 linux版本 ubuntu ubuntukylin 16 04 desktop amd64 https pan baid
  • OpenCV三维图像的创建和数据遍历

    创建一个如图所示的3 X 4 X 6 三维矩阵 include
  • 学习iot_小熊派IoT开发板系列教程正式发布——免费学习

    小宅按 小熊派开源社区针对小熊派IoT开发板首次规划了小熊派未来的系列教程 从基础到进阶的设计 可适应具有不同基础的开发者 通过该系列教程的学习 开发者能够轻松掌握IoT产品的开发 该系列教程包括单片机基础 LiteOS操作系统基础 通信外
  • [第五空间 2021]pklovecloud

    除了按部就班的根据代码来写序列化
  • 42 访问者模式(Visitor模式)详解

    行为型模式 模板方法 Template Method 模式 策略 Strategy 模式 命令 Command 模式 职责链 Chain of Responsibility 模式 状态 State 模式 观察者 Observer 模式 中介
  • stm32---基本定时器(TIM6,TIM7)

    STM32F1的定时器非常多 由两个基本定时器 TIM6 TIM7 4个通用定时器 TIM2 TIM5 和两个高级定时器 TIM TIM 组成 基本定时器的功能最为简单 类似于51单片机内定时器 通用定时器是在基本定时器的基础上扩展而来 增
  • dump文件分析工具_jvm系列:dump文件深度分析

    JVM dump java内存dump是jvm运行时内存的一份快照 利用它可以分析是否存在内存浪费 可以检查内存管理是否合理 当发生OOM的时候 可以找出问题的原因 那么dump文件的内容是什么样的呢 我们一步一步来 获取JVM dump文
  • super()

    super 关键字 关键字的理解 父类中定义了该方法 但是子类中重写了该方法 使用super来修饰这个方法 在调用的时候调用父类的方法 super关键字的使用 1 super理解为父类 2 super可以用来调用 属性方法和构造器 3 su