• Java中的super关键字


    super 是Java中的一个关键字,它可以用来引用当前对象的父类(超类)的成员变量或方法。主要有以下用途:

    1. 访问父类的成员变量

      • 当子类和父类中有同名的成员变量时,可以使用super关键字来访问父类的成员变量。
      class Parent {
          int x = 10;
      }
      
      class Child extends Parent {
          int x = 20;
      
          void display() {
              System.out.println(x); // 输出子类的x,即20
              System.out.println(super.x); // 输出父类的x,即10
          }
      }
      
      • 1
      • 2
      • 3
      • 4
      • 5
      • 6
      • 7
      • 8
      • 9
      • 10
      • 11
      • 12
    2. 调用父类的构造方法

      • 在子类的构造方法中,可以使用super来调用父类的构造方法。
      class Parent {
          int x;
      
          Parent(int x) {
              this.x = x;
          }
      }
      
      class Child extends Parent {
          int y;
      
          Child(int x, int y) {
              super(x); // 调用父类的构造方法
              this.y = y;
          }
      }
      
      • 1
      • 2
      • 3
      • 4
      • 5
      • 6
      • 7
      • 8
      • 9
      • 10
      • 11
      • 12
      • 13
      • 14
      • 15
      • 16
    3. 访问父类的方法

      • 当子类和父类中有同名的方法时,可以使用super关键字来调用父类的方法。
      class Parent {
          void display() {
              System.out.println("Parent");
          }
      }
      
      class Child extends Parent {
          void display() {
              super.display(); // 调用父类的display方法
              System.out.println("Child");
          }
      }
      
      • 1
      • 2
      • 3
      • 4
      • 5
      • 6
      • 7
      • 8
      • 9
      • 10
      • 11
      • 12
    4. 在子类构造方法中调用父类的构造方法

      • 当子类的构造方法中没有使用super来调用父类的构造方法时,会默认调用父类的无参构造方法。
      class Parent {
          int x;
      
          Parent(int x) {
              this.x = x;
          }
      }
      
      class Child extends Parent {
          int y;
      
          Child(int y) {
              this.y = y;
              // super(); // 默认调用父类的无参构造方法
          }
      }
      
      • 1
      • 2
      • 3
      • 4
      • 5
      • 6
      • 7
      • 8
      • 9
      • 10
      • 11
      • 12
      • 13
      • 14
      • 15
      • 16

    总的来说,super关键字可以用于在子类中访问父类的成员、调用父类的构造方法以及调用父类的方法,从而实现对父类的重用。

  • 相关阅读:
    实验室LIMS系统 asp.net源码 lims系统源码
    UNet网络模型:数据集制作
    mac gdb调试失败解决
    通达OA_文件包含漏洞
    Apifox简单了解——WEB端测试的集大成者
    基因数据平台
    2023APMCM亚太杯/小美赛数学建模竞赛优秀论文模板分享
    千万不要支付赎金!解密.halo勒索病毒的秘诀在这里
    13.1测试基础概念
    【每日前端面经】2023-02-23
  • 原文地址:https://blog.csdn.net/yang_guang3/article/details/133319646