有一种情况:
子类中重写了父类中的方法或属性,但是在子类中还需要调用原父类中被重写的方法或属性,此时可以使用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; }