Skip to content

super

  1. super 是直接父类对象的已用,可以通过 super 访问父类中被子类覆盖的方法或属性。

  2. 每个类的构造方法中,第一句一定是一个 super() 方法,如果不写编辑器会默认给我们加上。

  3. 通过 super 访问父类对象

    java
    package fun.my71;
    
    public class Index {
        public static void main(String[] args) {
            Student stu = new Student();
            System.out.println(stu.sumVal());
        }
    }
    
    class Person {
        int value = 1;
    
        public int sumVal() {
            return value + 10;
        }
    }
    
    class Student extends Person {
        int value = 2;
    
        public int sumVal() {
            return super.sumVal() + value + super.value;
        }
    }

追溯问题

  1. 构造方法第一句总是:super() 来调用父类对应的构造方法,也就是说,构造方法的调用顺序是从父类开始的。

  2. 代码

    java
    package fun.my71;
    
    public class Index {
        public static void main(String[] args) {
            Student stu = new Student();
        }
    }
    
    class Person {
        public Person() {
            System.out.println("父类构造方法被调用!");
        }
    }
    
    class Student extends Person {
        public Student() {
            System.out.println("子类构造方法被调用!");
        }
    }

基于 MIT 许可发布