简单来说,就是子类中重写的方法,既需要调用父类的方法,又需要再额外增加一些自己的东西。已经在Java的继承这篇文章中使用过super关键字了。

简单来说:super代表父类的引用,用于访问父类的属性,方法和构造器。
abstract class Report{
    void setReport(){
        //设置报告
    }
    void printReport(){
        //打印报告
    }
}
class sonReport extends Report{
    @override
    void setReport(){
        super.setReport();   //使用super关键字调用父类的setReport()方法,调用完后再继续往下走。
        myselfReportMethod();
        printReport();
    }
}1、能够分工明确,父类属性由父类初始化,子类属性由子类初始化。
class computer{
    String cpu;
    int memory;
    int disk;
}
public class PC extends Computer{
    private String brand;
    
    public PC(String cpu, int memory, int disk, String brand){
        super(cpu, memory, disk);
        this.brand = brand;
    }
}2、如果子类中的成员有和父类中的成员(属性和方法)重名时,为了访问父类的成员,必须通过super。如果没有重名,用super, this和直接调用是一样的效果。例如:下面的代码,如果子类中没有重名的方法,那他们效果是一样的,都是调用父类中的cal方法,但是如果子类PC中也有一个cal方法,那么直接调用和this.cal()就是调用的子类PC中的cal方法,而super.call()还是调用父类Computer中cal方法。
使用父类可访问方法的三种方式:(访问属性和方法的这个顺序一样)
class Computer{
    String cpu;
    int memory;
    int disk;
    int i = 100;
    public void cal(){
        
    }
}
public class PC extends Computer{
    private String brand;
    int i = 888;
    
    public PC(String cpu, int memory, int disk, String brand){
        super(cpu, memory, disk);
        this.brand = brand;
    }
    
    public void sum(){
        //想要在这里调用cal方法
        //第一种方式:直接调用
        //这种方式它会向上去找cal方式,顺序是:
        //(1) 先找本类,如果有就调用
        //(2) 如果没有,就向上去找父类(如果有,并可以调用(private的就不可以调用),就调用)
        //(3) 如果父类没有,则继续去找父类的父类,一直向上,直到找到object类。
        //注意:如果在查找方法的过程中找到了,但是不能访问,是会报错的。没有找到,提示方法不存在
        cal();
        
        //第二种方式:this
        //this.call和上面的第一种是完全等价的,查找顺序也是完全一样的
        this.call();
        //第三种方式:super
        //与上面两种方式不同,它没有第一步,而是直接从第二步开始去找父类的,其他的都一样。哪怕自己的子类有一个cal方法,他也不会去调用。
        super.call();
        sout(i);   //--->888
        sout(this.i);   //--->888
        sout(super.i);   //--->100
    }
}四、super和this的比较
super关键字和this关键字很相似,但super关键字是用于访问父类,this关键字是用于访问本类。

Fig.1 super关键字和this关键字的比较
你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧