Super()首先要做的事情

Kra*_*ken 2 java super

所以我有这个代码.

public class HourlyWorker extends Worker {

private int hours;
public HourlyWorker(String name, int salRate,int hours) {
    super(name, salRate);
    this.hours=hours;
}

@Override
void computePay() {
    int pay;
    if(hours<60)
    {
        System.out.println("haha");
        pay=super.getSalRate()*hours;   //CALLING SUPER HERE.
        System.out.println("pay of"+super.getName()+"="+pay);
    }

}

}
Run Code Online (Sandbox Code Playgroud)

现在在Worker课堂上,我有这个方法getSalRate.有人告诉我,这super将是方法中的第一行代码.但是,如果我在这里(在给出的表达式)中调用它; 它工作得很好.

当有人这样说时,有人可以告诉我,你的意思是什么? "Make Sure That Super Is The First Line Of Code

它只适用于构造函数吗?

Pet*_*ter 5

第一次调用的强制super()仅适用于构造函数.即使它被省略,super()在编译期间也会插入对默认构造函数的调用.