Java面向对象——super关键字

有一种情况:

  子类中重写了父类中的方法或属性,但是在子类中还需要调用原父类中被重写的方法或属性,此时可以使用super关键字

  • super可以理解为:父类的
  • super可以用来调用:属性、方法、构造器

1.super的使用:

//    对父类的方法进行改写
    public void eat() {
        super.eat();    //使用super调用父类的方法
        System.out.println("学生应该多吃有营养的食物");
    }

 主要用于父类和子类中方法和属性同名的情况,平时可以省略super.this.这样的结构

2.super调用构造器:

使用方法:“super(形参列表)”

注意:

  • 必须声明在子类构造器的首行
  • 对于this(形参列表)或super(形参列表),只能二选一,不能同时出现
  • 默认调用的是父类中空参的构造器super()
  • 在类的多个构造器中,至少有一个类的构造器中使用了“super(形参列表)”,调用父类的构造器

父类的构造器:

public Person(String name,int age) {
    this.name=name;
    this.age=age;
}

 子类中调用构造器:

public Student(String name,int age,String major) {
    super(name,age);
    this.major=major;
}
原文地址:https://www.cnblogs.com/codexlx/p/13534896.html