1、super指的是:父类
2、super可以修饰属性、方法
在子类的方法中,可以通过super.属性 super.方法 的方式,显示的去调用父类提供的属性和方法,在通常情况下,super省略不写
package com.pyk;
//子类
public class Student extends Person{
double score;
public void study() {
System.out.println("我可以学习");
}
public void a() {
System.out.println(super.age);//此处super可省略
super.eat();//此处super可省略
}
}
什么情况下super不能省略呢?
当子类定义有与父类相同属性的时候,如果子类需要调用父类的属性,那么此时就不能省略
父类:
package com.pyk;
//父类
public class Person {
int age=10;//父类中的age
public void eat() {
System.out.println("我想香蕉");
}
}
子类:
package com.pyk;
//子类
public class Student extends Person{
double score;
int age=20;//子类中的age
public void eat() {
System.out.println("我想吃菠萝");
}
public void a() {
System.out.println(super.age);//若要调用父类age属性则此处super不可省略
super.eat(); }//因子类重写了父类eat方法,若要调用父类的eat方法则此处super不可省略
}
由于age前面加了super关键字,那么访问的则是父类中的age属性
同理:当子类中重写了父类方法时,如果子类需要调用父类方法,那么super就不能省略