當父類中的某一個方法呼叫了另一個可以被繼承的方法時,如果子類重寫了該方法,則會出錯。
public class Super{
public void method1(){
//todo
}
public void method2(){
//todo
method1();
}
}
public class Sub{
public void method1(){
//重寫該方法
}
//這個時候如果Sub的例項呼叫了method2的時候,就會發生意想不到的錯誤。因為method1方法已經被重寫了。
}
複製程式碼
所以,如果編寫一個可以被繼承的類,則必須保證這個類永遠不會呼叫它的任何可被覆蓋方法。