2 回答

TA貢獻1864條經驗 獲得超2個贊
由于 CheckingAccount 從 Account 繼承受保護的字段余額,因此使用super或this關鍵字訪問 CheckingAccount 類中的字段余額并不重要。但是,我更喜歡“這個”。
如果 Account 類(基類)中有一個受保護的方法,而 CheckingAccount 類中有一個被覆蓋的方法,那么在這種情況下你必須小心使用super或this,因為它們不是同一個 body 實現!

TA貢獻1898條經驗 獲得超8個贊
我認為您不應該使用任何protected字段來強制封裝。提供一種protected void addToBalance(double value)方法將是更清潔的方法。
如果想指定隱式參數,我只是想知道在實踐中如何使用它
出于某種學術原因,這里有不同之處:
public abstract class Account {
protected String Id;
protected double balance;
public Account(String Id, double balance) {
this.Id = Id;
this.balance = balance;
}
}
public class CheckingAccount {
// overwrite existing field
protected double balance;
public CheckingAccount(String Id, double balance) {
super(Id, balance);
this.balance = balance;
if(super.balance > 10_000) this.balance += 200;
}
}
添加回答
舉報