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
        }
    }
    
  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;
        }
    }
    
  3. 访问父类的方法

    • 当子类和父类中有同名的方法时,可以使用super关键字来调用父类的方法。
    class Parent {
        void display() {
            System.out.println("Parent");
        }
    }
    
    class Child extends Parent {
        void display() {
            super.display(); // 调用父类的display方法
            System.out.println("Child");
        }
    }
    
  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(); // 默认调用父类的无参构造方法
        }
    }
    

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

你可能感兴趣的:(JavaSE,java,开发语言)