是的你是對的。如果你正在擴展一個具有抽象方法的抽象類,你不能調用super.thatMethod(); 考慮下面的例子
public class RSAService {
protected void doRSA(){}
}
class MyService extends RSAService{
public void myService(){
super.doRSA(); //Works fine
}
}
這將工作作爲doRSA()是從MyService
訪問。同爲public
而不是private
但
public abstract class RSAService {
protected abstract void doRSA();
}
class MyServe extends RSAService{
public void myService(){
super.doRSA(); //This won't work
}
@Override
protected void doRSA() {
}
}
現在考慮這種情況下,在那裏你可以從你的子類
public abstract class RSAService {
protected void doRSA(){}
}
class MyService extends RSAService{
public void myService(){
}
@Override
protected void doRSA() {
super.doRSA();
}
}
所以,如果你來推翻調用super.superClassMethod()超類方法可以使用super
來調用方法。考慮這個Java Specification的鏈接以獲得更多的說明
嘗試一下,你會看到結果。 – 2015-02-06 09:38:02